{"_id":"@bernierllc/content-editorial-workflow","_rev":"7-3790871c2a95326ed2715be89103af63","name":"@bernierllc/content-editorial-workflow","dist-tags":{"latest":"0.5.0"},"versions":{"0.1.2":{"name":"@bernierllc/content-editorial-workflow","version":"0.1.2","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.1.2","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"8012dcdfbf245a44f9b8e61fe45b21ac1519f240","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.1.2.tgz","fileCount":18,"integrity":"sha512-nboDgaR+H0dL2eR6e2Rbwjl+0EGdLAc9apjbOFO+sxhE6hvp5VBXGvdEbOZKyv2Js4WC/kwlwZxL51VbbWigNg==","signatures":[{"sig":"MEUCIHgkPunKeJRyKGJJcFk+mfArbBVWLwFBfoYImNePlPzIAiEAtln85mrv7Ulf1xjLzcy+SeoUGjSu9RudyvmB76ntmug=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75842},"main":"dist/index.js","_from":"file:bernierllc-content-editorial-workflow-0.1.2.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"mkbernier","email":"mkbernier@gmail.com"},"_resolved":"/private/var/folders/r0/wspnzd1s18sfjy10ffyv2qxw0000gn/T/8c2eb657c1b3cef98d2a84e338f84d56/bernierllc-content-editorial-workflow-0.1.2.tgz","_integrity":"sha512-nboDgaR+H0dL2eR6e2Rbwjl+0EGdLAc9apjbOFO+sxhE6hvp5VBXGvdEbOZKyv2Js4WC/kwlwZxL51VbbWigNg==","repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"11.6.2","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"25.1.0","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.1.2_1763159607475_0.4816716778083625","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bernierllc/content-editorial-workflow","version":"0.1.4","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.1.4","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"808d593442252f71da03f29eecc682b2172513f0","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.1.4.tgz","fileCount":18,"integrity":"sha512-iKTLd9VkJZBujbcmsMFfmfdMfM17f7t26j2OpfVoe2mcNnLhuh2GGAxi0Jzg6AJPsit3aQxnweu3TtQinuyc4w==","signatures":[{"sig":"MEUCIQDhMWj4RZp4ljQGPrmKA1BlOJzxrCuiulQF1qZynTVt1wIgQATq+h+2HSj6UEutwo+ewbF2CeY/BUp6Ojcntm3M+vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75947},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"af7e74b3715d56d3a193e1bb6743b337c2b0df6d","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"lerna/9.0.3/node@v20.19.6+x64 (linux)","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.1.4_1767642288988_0.8564587556772099","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bernierllc/content-editorial-workflow","version":"0.1.5","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.1.5","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"44e2ef2c941c12bad676ba155ca3c109c7aff6dd","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.1.5.tgz","fileCount":18,"integrity":"sha512-kHt4dm+QMW0xeRqk9b8yIzq1otrIoeh0eyeR+WKFI901vtq3jWFiMQw9rfPxz7lhHWcLvtpj8J67qqhYkCsqyw==","signatures":[{"sig":"MEQCIF/Yh7VK/aF7/Ehmx9VUtQ7htTqhDIBm1yRdFiD3G8EGAiAwNUhnveFYKhm8jKA/vGVXCi5m/2wv+dK4k9VotmXuYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75889},"main":"dist/index.js","_from":"file:bernierllc-content-editorial-workflow-0.1.5.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"_resolved":"/tmp/3e5b0a43f768bc0074246b08c4ec90ee/bernierllc-content-editorial-workflow-0.1.5.tgz","_integrity":"sha512-kHt4dm+QMW0xeRqk9b8yIzq1otrIoeh0eyeR+WKFI901vtq3jWFiMQw9rfPxz7lhHWcLvtpj8J67qqhYkCsqyw==","repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"11.11.0","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.1.5_1773077975229_0.08250859459724968","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bernierllc/content-editorial-workflow","version":"0.1.6","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.1.6","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"4874dc6ef544b1467abd94b19622aaadcd0b100f","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.1.6.tgz","fileCount":18,"integrity":"sha512-7LvmwZrPrwHH2B84Q7BqsuHXp/is+BeZinRUqSBqZem56dEM/UHXErke/eUPdFxKZsCz4wz2/oF2Jjm5ao2DLQ==","signatures":[{"sig":"MEQCIFkiDHJeb+TaH2CkYJX4bp7bkIepX+xKwO3leACk6jqMAiAwI9+HgJjTCox7PuF5hBrO+dATy0QAxQXoWiuWpVw2Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75889},"main":"dist/index.js","_from":"file:bernierllc-content-editorial-workflow-0.1.6.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"_resolved":"/tmp/55a5bdc2983e41a6a2d18aca965edde3/bernierllc-content-editorial-workflow-0.1.6.tgz","_integrity":"sha512-7LvmwZrPrwHH2B84Q7BqsuHXp/is+BeZinRUqSBqZem56dEM/UHXErke/eUPdFxKZsCz4wz2/oF2Jjm5ao2DLQ==","repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"11.11.0","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.1.6_1773081143527_0.5864021242792854","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@bernierllc/content-editorial-workflow","version":"0.3.0","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.3.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"344ba6a33905e12e4ab6ba38cdfb1fe1c07edd56","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.3.0.tgz","fileCount":22,"integrity":"sha512-bbneebKJyDIO9el9tEmuS1MKzn6fin4TXu2LzUi642Vf7DRKQvPLAsZdHK2Ay0iO1+oJ03vEOQsfK+Ef5N/zjA==","signatures":[{"sig":"MEQCICUTQ/3QkqXqKercO7qdNEBKTA4NDsgtM0gcvuWpm/LpAiArIkRUEHP/4YPw5T9I0qeK/LZH/qhwytshg36Gf0ldKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79226},"main":"dist/index.js","_from":"file:bernierllc-content-editorial-workflow-0.3.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-editorial-workflow/bernierllc-content-editorial-workflow-0.3.0.tgz","_integrity":"sha512-bbneebKJyDIO9el9tEmuS1MKzn6fin4TXu2LzUi642Vf7DRKQvPLAsZdHK2Ay0iO1+oJ03vEOQsfK+Ef5N/zjA==","repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"11.14.1","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.3.0_1779233862379_0.5545316675800225","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@bernierllc/content-editorial-workflow","version":"0.4.0","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","_id":"@bernierllc/content-editorial-workflow@0.4.0","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"dist":{"shasum":"a100e1f3a75337bc349f2cf212b23a647322c2c4","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.4.0.tgz","fileCount":22,"integrity":"sha512-IDRQUmpJZtNEPxtRFr4DFeFke205StcLEMPUf51DDil9ZqK2izfd8EktDmNEiwTfc6i5i3tuX8SCjxg5aAMKDg==","signatures":[{"sig":"MEUCICK41ihFdErkia1YYOEtrB+eG8R+BBsQomvcKH7dXgg6AiEA6XIoSdTiFzuHaUB19Eq0RUbgsnOA/RZgo+bLT3Ay9UQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79226},"main":"dist/index.js","_from":"file:bernierllc-content-editorial-workflow-0.4.0.tgz","types":"dist/index.d.ts","scripts":{"lint":"eslint src --ext .ts","test":"jest","build":"tsc","clean":"rimraf dist","test:run":"jest --passWithNoTests","test:watch":"jest --watch","test:coverage":"jest --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"_resolved":"/home/runner/work/tools/tools/packages/core/content-editorial-workflow/bernierllc-content-editorial-workflow-0.4.0.tgz","_integrity":"sha512-IDRQUmpJZtNEPxtRFr4DFeFke205StcLEMPUf51DDil9ZqK2izfd8EktDmNEiwTfc6i5i3tuX8SCjxg5aAMKDg==","repository":{"url":"git+https://github.com/BernierLLC/tools.git","type":"git","directory":"packages/core/content-editorial-workflow"},"_npmVersion":"11.14.1","description":"Configurable editorial workflow engine for content management","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.22.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.50.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2","@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/parser":"^6.7.3","@typescript-eslint/eslint-plugin":"^6.7.3"},"_npmOperationalInternal":{"tmp":"tmp/content-editorial-workflow_0.4.0_1779240973810_0.0663015203113615","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@bernierllc/content-editorial-workflow","version":"0.5.0","description":"Configurable editorial workflow engine for content management","main":"dist/index.js","types":"dist/index.d.ts","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"author":{"name":"Bernier LLC"},"license":"UNLICENSED","dependencies":{"zod":"^3.22.4"},"devDependencies":{"@types/jest":"^29.5.5","@types/node":"^20.8.0","@typescript-eslint/eslint-plugin":"^6.7.3","@typescript-eslint/parser":"^6.7.3","eslint":"^8.50.0","jest":"^29.7.0","rimraf":"^5.0.1","ts-jest":"^29.1.1","typescript":"^5.2.2"},"repository":{"type":"git","url":"git+https://github.com/BernierLLC/tools.git","directory":"packages/core/content-editorial-workflow"},"bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsc","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:run":"jest --passWithNoTests","lint":"eslint src --ext .ts","clean":"rimraf dist"},"_id":"@bernierllc/content-editorial-workflow@0.5.0","_integrity":"sha512-Oj4SJ0eGYtv0YquBtzuouDL6nnHFQARCxerglLHJquVu0qkuh8xg0KrZ6/8U6U98/iKRJfPUNDkPDVZpOJOwkw==","_resolved":"/home/runner/work/tools/tools/packages/core/content-editorial-workflow/bernierllc-content-editorial-workflow-0.5.0.tgz","_from":"file:bernierllc-content-editorial-workflow-0.5.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-Oj4SJ0eGYtv0YquBtzuouDL6nnHFQARCxerglLHJquVu0qkuh8xg0KrZ6/8U6U98/iKRJfPUNDkPDVZpOJOwkw==","shasum":"13eb8d8d12932c624ca2ea24e181bb2f689075fc","tarball":"https://registry.npmjs.org/@bernierllc/content-editorial-workflow/-/content-editorial-workflow-0.5.0.tgz","fileCount":22,"unpackedSize":79226,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDAxtTNv6AHgtm3iliS0gLjfa/NsuCCGTQUYsJlAIl6CQIhAOAe68KmjWhYoL+gQqDgyLc1adEwQT/o+7v7pCRI8sR4"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4316f350-43d7-47ff-b74f-485f4703fb31"}},"directories":{},"maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/content-editorial-workflow_0.5.0_1779249709139_0.20738404735028215"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-14T22:33:27.382Z","modified":"2026-05-20T04:01:50.020Z","0.1.2":"2025-11-14T22:33:27.700Z","0.1.4":"2026-01-05T19:44:49.170Z","0.1.5":"2026-03-09T17:39:35.354Z","0.1.6":"2026-03-09T18:32:23.667Z","0.3.0":"2026-05-19T23:37:42.522Z","0.4.0":"2026-05-20T01:36:13.985Z","0.5.0":"2026-05-20T04:01:49.350Z"},"bugs":{"url":"https://github.com/BernierLLC/tools/issues"},"author":{"name":"Bernier LLC"},"license":"UNLICENSED","homepage":"https://github.com/BernierLLC/tools/tree/main/packages/core/content-editorial-workflow#readme","keywords":["content","workflow","editorial","stages","content-management","bernierllc"],"repository":{"type":"git","url":"git+https://github.com/BernierLLC/tools.git","directory":"packages/core/content-editorial-workflow"},"description":"Configurable editorial workflow engine for content management","maintainers":[{"name":"alikhan410","email":"mczeyo@gmail.com"},{"name":"mkbernier","email":"mkbernier@gmail.com"}],"readme":"# @bernierllc/content-editorial-workflow\n\nConfigurable editorial workflow engine for content management.\n\n## Overview\n\nThis package provides a flexible, configurable editorial workflow engine that allows you to define custom content workflows with multiple stages, transitions, and permissions. It's designed to handle complex editorial processes while remaining simple to configure and use.\n\n## Features\n\n- **Configurable Workflows**: Define custom editorial workflows with multiple stages\n- **Stage Management**: Create stages with specific properties (publish, scheduling, permissions)\n- **Transition Control**: Define how content moves between stages\n- **Permission System**: Control who can perform specific actions\n- **Event System**: Listen to workflow events for integration\n- **Validation**: Built-in workflow validation\n- **Templates**: Pre-built workflow templates for common use cases\n- **TypeScript Support**: Full type safety and IntelliSense\n\n## Installation\n\n```bash\nnpm install @bernierllc/content-editorial-workflow\n```\n\n## Quick Start\n\n```typescript\nimport { \n  EditorialWorkflowEngine, \n  WorkflowBuilder, \n  WorkflowTemplates \n} from '@bernierllc/content-editorial-workflow';\n\n// Create a workflow engine\nconst engine = new EditorialWorkflowEngine();\n\n// Register a workflow\nconst workflow = WorkflowTemplates.writeAndPublish();\nengine.registerWorkflow(workflow);\n\n// Create content in the workflow\nconst content = engine.createContent({\n  contentType: 'text',\n  workflowId: 'write-and-publish',\n  data: { title: 'My Article', content: 'Article content...' },\n  metadata: { title: 'My Article' },\n  createdBy: 'user1',\n  updatedBy: 'user1'\n});\n\n// Transition content to next stage\nconst result = engine.transitionContent(content.id, 'publish', 'user1');\nif (result.success) {\n  console.log('Content moved to publish stage');\n}\n```\n\n## API Reference\n\n### EditorialWorkflowEngine\n\nThe main engine for managing workflows and content.\n\n#### `registerWorkflow(workflow)`\nRegister a new workflow.\n\n```typescript\nconst workflow = WorkflowTemplates.writeAndPublish();\nengine.registerWorkflow(workflow);\n```\n\n#### `createContent(content)`\nCreate new content in a workflow.\n\n```typescript\nconst content = engine.createContent({\n  contentType: 'text',\n  workflowId: 'write-and-publish',\n  data: { title: 'My Article', content: 'Article content...' },\n  metadata: { title: 'My Article' },\n  createdBy: 'user1',\n  updatedBy: 'user1'\n});\n```\n\n#### `transitionContent(contentId, toStage, userId, data?)`\nMove content to a different stage.\n\n```typescript\nconst result = engine.transitionContent(contentId, 'publish', 'user1');\nif (result.success) {\n  console.log('Content moved to:', result.newStage);\n}\n```\n\n#### `getStateMachine(contentId)`\nGet the current state and available transitions for content.\n\n```typescript\nconst stateMachine = engine.getStateMachine(contentId);\nconsole.log('Current stage:', stateMachine.currentState);\nconsole.log('Available transitions:', stateMachine.availableTransitions);\n```\n\n### WorkflowBuilder\n\nBuild custom workflows programmatically.\n\n```typescript\nconst workflow = new WorkflowBuilder()\n  .id('my-workflow')\n  .name('My Custom Workflow')\n  .description('A custom workflow for my content')\n  .addStage({\n    id: 'draft',\n    name: 'Draft',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Initial draft creation'\n  })\n  .addStage({\n    id: 'review',\n    name: 'Review',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Content review',\n    permissions: ['content.review']\n  })\n  .addStage({\n    id: 'publish',\n    name: 'Publish',\n    isPublishStage: true,\n    allowsScheduling: true,\n    description: 'Publish content'\n  })\n  .linear()\n  .build();\n```\n\n### WorkflowTemplates\n\nPre-built workflow templates for common use cases.\n\n#### `writeAndPublish()`\nSimple workflow with write and publish stages.\n\n```typescript\nconst workflow = WorkflowTemplates.writeAndPublish();\n```\n\n#### `editorialWithReview()`\nWorkflow with write, review, and publish stages.\n\n```typescript\nconst workflow = WorkflowTemplates.editorialWithReview();\n```\n\n#### `complexEditorial()`\nComplex workflow with multiple review and approval stages.\n\n```typescript\nconst workflow = WorkflowTemplates.complexEditorial();\n```\n\n#### `blogPost()`\nWorkflow specifically designed for blog post creation.\n\n```typescript\nconst workflow = WorkflowTemplates.blogPost();\n```\n\n## Workflow Configuration\n\n### EditorialStage\n\nDefine workflow stages with specific properties.\n\n```typescript\ninterface EditorialStage {\n  id: string;                    // Unique stage identifier\n  name: string;                  // Human-readable name\n  order: number;                 // Order in workflow (1-based)\n  isPublishStage: boolean;       // Whether this stage publishes content\n  allowsScheduling: boolean;     // Whether this stage allows scheduling\n  nextStage?: string;            // Next stage ID (optional)\n  permissions?: string[];        // Required permissions\n  active?: boolean;              // Whether stage is active\n  description?: string;          // Stage description\n  color?: string;                // UI color\n  icon?: string;                 // UI icon\n}\n```\n\n### WorkflowTransition\n\nDefine how content moves between stages.\n\n```typescript\ninterface WorkflowTransition {\n  from: string;                  // Source stage ID\n  to: string;                    // Target stage ID\n  permissions?: string[];        // Required permissions\n  automatic?: boolean;           // Whether transition is automatic\n  conditions?: TransitionCondition[]; // Conditions for automatic transition\n  requiresApproval?: boolean;    // Whether transition requires approval\n  notifications?: NotificationConfig[]; // Notification settings\n}\n```\n\n## Event System\n\nListen to workflow events for integration with other systems.\n\n```typescript\n// Add event handler\nconst handlerId = engine.onEvent((event) => {\n  console.log('Workflow event:', event.type, event.contentId);\n});\n\n// Remove event handler\nengine.offEvent(handlerId);\n```\n\n### Event Types\n\n- `content_created`: Content created in workflow\n- `stage_changed`: Content moved to different stage\n- `content_updated`: Content updated\n- `workflow_completed`: Workflow completed\n- `workflow_failed`: Workflow failed\n\n## Validation\n\nThe engine includes built-in workflow validation.\n\n```typescript\nconst validation = engine.validateWorkflow(workflow);\nif (!validation.valid) {\n  console.error('Workflow validation errors:', validation.errors);\n}\n```\n\n## Examples\n\n### Basic Content Workflow\n\n```typescript\nimport { EditorialWorkflowEngine, WorkflowTemplates } from '@bernierllc/content-editorial-workflow';\n\nconst engine = new EditorialWorkflowEngine();\n\n// Register a simple workflow\nconst workflow = WorkflowTemplates.writeAndPublish();\nengine.registerWorkflow(workflow);\n\n// Create content\nconst content = engine.createContent({\n  contentType: 'article',\n  workflowId: 'write-and-publish',\n  data: {\n    title: 'Getting Started with Workflows',\n    content: 'This is a comprehensive guide...'\n  },\n  metadata: {\n    title: 'Getting Started with Workflows',\n    tags: ['tutorial', 'workflow'],\n    priority: 'medium'\n  },\n  createdBy: 'author1',\n  updatedBy: 'author1'\n});\n\n// Publish content\nconst result = engine.transitionContent(content.id, 'publish', 'author1');\nif (result.success) {\n  console.log('Article published successfully!');\n}\n```\n\n### Custom Workflow with Permissions\n\n```typescript\nimport { WorkflowBuilder } from '@bernierllc/content-editorial-workflow';\n\nconst workflow = new WorkflowBuilder()\n  .id('editorial-workflow')\n  .name('Editorial Workflow')\n  .description('Workflow with review and approval stages')\n  .addStage({\n    id: 'draft',\n    name: 'Draft',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Initial draft creation'\n  })\n  .addStage({\n    id: 'edit',\n    name: 'Edit',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Content editing and refinement',\n    permissions: ['content.edit']\n  })\n  .addStage({\n    id: 'review',\n    name: 'Review',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Content review for quality',\n    permissions: ['content.review']\n  })\n  .addStage({\n    id: 'approval',\n    name: 'Approval',\n    isPublishStage: false,\n    allowsScheduling: false,\n    description: 'Final approval before publishing',\n    permissions: ['content.approve']\n  })\n  .addStage({\n    id: 'publish',\n    name: 'Publish',\n    isPublishStage: true,\n    allowsScheduling: true,\n    description: 'Publish content'\n  })\n  .linear()\n  .build();\n```\n\n### Event Handling\n\n```typescript\n// Set up event handling\nengine.onEvent((event) => {\n  switch (event.type) {\n    case 'content_created':\n      console.log(`New content created: ${event.contentId}`);\n      break;\n    case 'stage_changed':\n      console.log(`Content ${event.contentId} moved to stage ${event.stageId}`);\n      break;\n    case 'workflow_completed':\n      console.log(`Workflow completed for content ${event.contentId}`);\n      break;\n  }\n});\n```\n\n## TypeScript Support\n\nThis package is written in TypeScript and provides full type definitions. All interfaces and types are exported for use in your own code.\n\n## Integration Status\n\n### Logger Integration\n**Status**: not-applicable - Core workflow engine with minimal logging needs. This is a pure state machine implementation that does not require structured logging.\n\n### Docs-Suite Integration\n**Status**: ready - Complete API documentation via TypeDoc with markdown examples and comprehensive usage guides.\n\n### NeverHub Integration\n**Status**: not-applicable - Core state machine package without service discovery requirements. This package provides foundational workflow logic and does not need runtime service coordination.\n\n## License\n\nUNLICENSED - See LICENSE file for details.\n\n## Contributing\n\nContributions are welcome! Please see the contributing guidelines for more information.\n\n## Support\n\nFor support and questions, please open an issue on GitHub.\n","readmeFilename":"README.md"}