{"_id":"x-openapi-flow","_rev":"34-fee2a96d93267cc2fc839434b7bf6a7f","name":"x-openapi-flow","dist-tags":{"latest":"1.8.1"},"versions":{"1.1.0":{"name":"x-openapi-flow","version":"1.1.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-flow"],"license":"MIT","_id":"x-openapi-flow@1.1.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"a7be9ea110d6aeb94c0a4cda06e2a40b04c0de2b","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.1.0.tgz","fileCount":11,"integrity":"sha512-7gTlTVMmod1I8GOGo2mFdIdfH+Sw/QhVpbubSYwf0Q79XZUGbFH0tSc7PUc7bkYupQ3yoSMtmjgTUAzPXZbinQ==","signatures":[{"sig":"MEYCIQDMvF6dlysTnwlQmR2oH95+RAY63p7omtoJOck64YwAWQIhALP5n4YDFZXTs3HO2W7VCJe3BQq+DSk/LBEIyitMqR29","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50317},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"4b30a828bdfa5c44930ec9a61eefb7db22666b33","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.1.0_1771985670307_0.8154841062320466","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"x-openapi-flow","version":"1.1.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-flow"],"license":"MIT","_id":"x-openapi-flow@1.1.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"70c0f6751e3798690f7c029ab7e78a20c3c5d3f4","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.1.1.tgz","fileCount":11,"integrity":"sha512-zdEHsIjah23a4+sdCR47M3tik4a+OXeqAxDxeME5EBMoZ7HLNXML8KDNQwuLfWFlWIMa70X9VI+zX1K4p5o5bA==","signatures":[{"sig":"MEQCIHyQbhxfmWMb4VP2sM4aJ7HS983/3LQH3gY/U45Oh6OfAiA5+zT5PtArrAGRkQoYJxVsvmAoY3Vx5h2edfTNMyDrBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50317},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"4b30a828bdfa5c44930ec9a61eefb7db22666b33","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.1.1_1771985822048_0.1902344635677844","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"x-openapi-flow","version":"1.1.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.1.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"4b6eff1302e9705ad49ad4e0836bde2f48e4003b","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.1.2.tgz","fileCount":13,"integrity":"sha512-fTXrsd7JLXEKAi8bZtse9Ji41R1kWnPpJEeflcrnSRCBP24P8lYDDvsBl6fZe0pl5AYBvDy8df0EfZS1KsdPDw==","signatures":[{"sig":"MEUCIE02Alc2tCq+jqLc0GMNaa4NA2DUN6rlgLBMptXbXpyUAiEAnaCIrq+X8vmlYRra6/8FiD30v8Y22teeAXGMM84KXLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63231},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"7492778b4f0ae75276cb9252bafcfcbaccb03e47","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.1.2_1771987647344_0.0541908858752671","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"x-openapi-flow","version":"1.1.3","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.1.3","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"230ab0dba005a05353a6c5423975cbb3b21ffc12","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.1.3.tgz","fileCount":13,"integrity":"sha512-mSazUmjVdVf9IFV4udaQOK93bu1afSaVrUt+6mcgTOGkB4lOIdM0WIg0YMWbApgdO1/NYATLXwl7FO0pLk5k1w==","signatures":[{"sig":"MEQCID2b5ukv7VgqbYi8xOD1/61nq9BjUD7bRenVhOrmcJeJAiAQnVhr5cbHOWJ91hQdwNW2LIwp2l1MDjpXorcOOcZx8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67212},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"f3a1497d7ea60b069325fe788832e2993fa7c86b","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.1.3_1771989030309_0.4154882669068394","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"x-openapi-flow","version":"1.2.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.2.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"3fd9a83a0437038738893f51e20eb1ee3d583242","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.2.0.tgz","fileCount":13,"integrity":"sha512-ZNzFXuVKvYqChD0UvacKNs4KWTMCA++dcAwvTz4l/75x3wFV94pMw+/mqwNSJJynvAudoxzpLcmEJHM398epYA==","signatures":[{"sig":"MEUCIQCngfTpdHxXtOYPg5uGrgJwYKGE4mfkBPgn5+V5a8s32wIgaVh4iVC7FnZo4qbaF9PEOUxl0NL0G7H+b02U8cr2Mf4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83136},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"da7a4919568f67598b8607987768a3fd132ea59d","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.2.0_1771996213304_0.09256875942294074","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"x-openapi-flow","version":"1.2.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.2.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"c0cb7ee7f6ccc76af308173ae5d7aaeff56d076c","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.2.1.tgz","fileCount":13,"integrity":"sha512-hWUAvIz/Fd3rXGRKAzozgvOyBF+9wlRnG1WDjcNZt3tCEyVTpIiPgMr2w+MZok3KRXOJOgil4S+2yqKoyoVQUA==","signatures":[{"sig":"MEUCIQCVpLLXyiyluI1Vudz+EUvYHYRfzIkgzoFKwZc0GwLnqgIgOz93cPjpfQmsYW9qIkYjnuYpQ6lKsJ6VZC8mh/e72FU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90984},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"d302a7b4ad6dcad58d65b887dc5af8d94f3c66ae","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.2.1_1772000328962_0.814436104467781","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"x-openapi-flow","version":"1.2.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.2.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"ff10516ca38004e2cd321cb54c3fa20fd936a311","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.2.2.tgz","fileCount":13,"integrity":"sha512-Zsum/L0mllJlkLEBeS/5YpcHDhtP7bzrZfqPkMP7liOZtPVg15J5T58IYc6DJw1CUWOkzsztaqTmiIOjNH4nRg==","signatures":[{"sig":"MEQCIHoPYxpItuq1RehrNZojfYwYnc0bNKIZo8IOYrhMJNl3AiAMabhxEgy5y9pXlKVMV3s9Du7HNg69gBLnkMb4ZXh1mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91718},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"43a7fe3c3b43e6aa1aaf40260c1fb0cf7624de6c","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.2.2_1772000867124_0.7533229780142523","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"x-openapi-flow","version":"1.2.3","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.2.3","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"99ad58a2b191f66d991f590e6cdac0dd0d8916c4","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.2.3.tgz","fileCount":13,"integrity":"sha512-Wpk5V4rQxjUZsKOtOHZMEL6eKdrmct3kqczECOVepGXiNWIfatIZpxBuJwtD+zxL0INnMMKhqj6Ov5MXxwJWeg==","signatures":[{"sig":"MEYCIQDCnG4lfj0qDjyfnGxkt3tlBId8CCiQYyJh0sBGu8O+UwIhANjZMYuvtTJmyJUMLNv2TP+f8jTHJqAcN7/GJj8Sek/R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92439},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"d3467595f1d864b85d12c8c96e94d7888d802291","scripts":{"test":"npm run test:cli && npm run test:smoke","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.2.3_1772002210624_0.2247411264973218","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"x-openapi-flow","version":"1.3.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"dabe40f193dc3f4067d419bf8991ba97ad79d534","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.0.tgz","fileCount":13,"integrity":"sha512-tuVza8R4a5HI9oUWO4Rq2HrURqyAL3YareMU6/5E7krYdUqgzR/MTBqn69FTQPertZs+fQSBTUoKRidh/PqFHQ==","signatures":[{"sig":"MEUCIQCswRC+KNMTBXcP9yud/92Pn2FF7YgCoJwd8Qh+yAHlXgIgYje3Ju0KnK8Zo+Ubidej4MwGVKU9uom5Ux2kxeyK9ro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136539},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"e5da11d571a74a1f371c5356671aa4be4612048c","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:smoke","test:ui":"node --test tests/plugin-ui.test.js","test:cli":"node --test tests/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.0_1772053349282_0.8388757252974854","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"x-openapi-flow","version":"1.3.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"e06a08fec9cc07288e218f6b93a247e5fff5551b","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.1.tgz","fileCount":27,"integrity":"sha512-poocNjMWvY+kh9bIWfYogYPoDssDTaGxSeCBm8k/r/09O7Fdwm7qS6RHZ5H/U3GfL71OiAgUiOjAiXC+BtdSyg==","signatures":[{"sig":"MEYCIQCjC9CCsuW2c85VJiawrubt4XYyGExJcIfPwFa5ndUjXwIhAPkZtTttbznS/ZSyoyn8F+ULVtUv3QFkXFijrfu5kZq/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211549},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"97e8e64f01ecb1170d0e2d921b47de96da7e4199","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"11.6.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.1_1773634888676_0.3605902785156325","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"x-openapi-flow","version":"1.3.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"0eb5028bdc32f2545f2dea5cadfe553f16dfc07e","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.2.tgz","fileCount":27,"integrity":"sha512-hoqqbj8cYVr0XhjdpfHG6GFwuUT64v8MGbtmARU4+6CSRS2KLXK4si3dWTYO7Xaou7EpHixU1bWsVDH4LNBcMA==","signatures":[{"sig":"MEYCIQDvovV0X3GhjAFksKyewlkruKw5jH8jDMizaZHEkxqX9wIhAK2NB9/ZKtJHg7xCBaBFvIOHY5MOz+Pw7c2vA1ub/0ey","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211631},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"8c33d08192f9b2e19f515a8737a733ff84de4b18","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.2_1773636866315_0.7546853336884274","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"x-openapi-flow","version":"1.3.4","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.4","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"abd06740502fa2e23ad4ee4e0ad761a3ac67ac82","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.4.tgz","fileCount":27,"integrity":"sha512-kaFFSOQ+0zgtHVzXg1zM+NZ5lj5L8cPtVcYOKBHBhQovdqnLrMGWTm7LWvfCVU7Do35huSoEKMzfns5f5LY1zg==","signatures":[{"sig":"MEYCIQCSmWArg2zt0qKJ08ibAQSWS2PH7uJGqxs4K58672fb2QIhAMVt+62Og9llssbkfny/NsnF1IDaz8hQdDVh/6/o3kWN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211635},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"e6fee394dbd31446e8894ac114a2781710230994","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.4_1773640526532_0.43651303947659237","host":"s3://npm-registry-packages-npm-production"}},"1.3.5":{"name":"x-openapi-flow","version":"1.3.5","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.5","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"fdbfb955c93543fb85ebf6d63bc0e6c9ffeb26f8","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.5.tgz","fileCount":27,"integrity":"sha512-CfjjvCeRAiZCOE04DPedngeX/e+kRSHAFOsE2HH+RXbJg+qRI54tnTDf9TmDyGk/AZe3qrI+W1BlBKb83WpLBg==","signatures":[{"sig":"MEQCIBKp9PJMbBEK2EATTtKSesepKkSc0m3GrZPYOpn5FsI7AiBcfE0kz+u4dywhDIdPDar2wmgD8ztiOx3X9hGdR1K1wA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224355},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"8e71accf44d1bd2bfd76122d4c44fec96f1ab557","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.5_1773683810293_0.20407049449936143","host":"s3://npm-registry-packages-npm-production"}},"1.3.6":{"name":"x-openapi-flow","version":"1.3.6","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.6","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"28ac5570e2e54bd18e5869cb51510fb67cfe5a39","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.6.tgz","fileCount":27,"integrity":"sha512-KY6sOt8ox8AjbG1P0pQSZzZiLfDKfqRdrmves0ytp7WbUxzPM+Kz5kBFFxemtapewBnoPuwWhZXYJPvvQrSt3g==","signatures":[{"sig":"MEYCIQD/kz7lMoAJiwPsxZYKnheJa2RC+murGgbt09qu+N6lZgIhALreoK800YtcyTMEvA85K/QQxPTD96iK9i4++YyfAWrc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224550},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"a9f56b8fa1d330a13082f2bef1adf6902001854e","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.6_1773685565719_0.1399449705517417","host":"s3://npm-registry-packages-npm-production"}},"1.3.7":{"name":"x-openapi-flow","version":"1.3.7","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.3.7","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"67a75436baa1a61515714888b0c6ab527c127d19","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.3.7.tgz","fileCount":27,"integrity":"sha512-y/ZK9PwcJ1s2Q61wzUPrkGYrcsqcSWcCzBjAzsZpstmG9FYeIx0rllHw34/BROdrU82HJpWYxpQ2yfEY/irMJw==","signatures":[{"sig":"MEUCIECAwN+owP8QmQYUuoXJwkjXm4gP6iXaQHmTud+EsNmVAiEAg86Ar207Ifk1C1tOYB1TfwcqCnTPKggpdhUJjvjeaIE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224367},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"f1775a958bcc24ab750dea2fa8b61fc2130b9488","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/plugin-ui.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.3.7_1773686653333_0.7744777745520532","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"x-openapi-flow","version":"1.4.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.4.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"12fc8e91dac8c7c849e7c3bcd25cb3f8037ac93c","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.4.0.tgz","fileCount":27,"integrity":"sha512-2wEu0xnzE2Iiux05OzXiAQmP5cYU+TQFQ/YrWAU8uqWk3ewxrBYDk/ty/proJEevEkMaDEHfkScrMuOIwe9sJQ==","signatures":[{"sig":"MEQCIDY98+wwwBcyqmyBk+63tEP9xsjJb1dqPSNJjbtUKo/4AiBMiIYA+RPlKrEaRZd+CvYSdzIi71GoNhsuePkrIiPpsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263925},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"c25fe707912c7296abc05e5d5052fcc04d6321d6","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.4.0_1773716572317_0.18245655537043426","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"x-openapi-flow","version":"1.4.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.4.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"94034f95e55e212043641a89cf2b86c39c1b5452","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.4.1.tgz","fileCount":27,"integrity":"sha512-g2MJY1fUo+OPNcEboNq9lc+IAIFw1zX8FhLYAAiFF9GQ/2Vvth3U/Epa4it6v9zDQViayQUE3pUkrzaP68zBCw==","signatures":[{"sig":"MEYCIQDJQEoyJGhEVop6Gxnp6dOpt3Wi4E5YuO+a9OcPSBBkCgIhALCD9sy4trsJdPNlebA5zk0iMyGmlo4PoRQAoYL7HHEo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261026},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"507022f7053ebb5942097cbc7563e78e284861ee","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.4.1_1773796422878_0.26540382359068615","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"x-openapi-flow","version":"1.4.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.4.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"12afd45e3d485a32c6a519af4d78bbd30e6ca7b5","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.4.2.tgz","fileCount":27,"integrity":"sha512-tCVls7Xjm1kQ9fp7SMk1hPK2V3ZTmfy+/TlpSbHOVsXQKnZ3wfBAL3HfZp0szGuhvZm6YS1YeUxftlc1Op3CQQ==","signatures":[{"sig":"MEYCIQCV+VRB+NBo27Px3QMPZrk57RDSFMdlxeFIHTeS8olm5QIhAJ7qWSkV+Va0K/WO8t5p0D+5gWRj87tibPeGD6XiKdKJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262601},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"10f72e805d5e1ae5348ece3d94d58701985a3884","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.4.2_1773797630063_0.9895080341733167","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"x-openapi-flow","version":"1.4.3","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.4.3","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"8913a42a5b3e50d754bb6f97806f112ee1e42cb7","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.4.3.tgz","fileCount":27,"integrity":"sha512-X7SPsrSNbrXTRIU+PhnUHKhHKJiAWocfYCY1NSuUQoXQLTBuVd9YDNOKG6xNo3J/IgjKjPm06RfJRfX6/Y1i3w==","signatures":[{"sig":"MEQCIDNnjc6TsZiTqAPpPpHFS/INHQVPaF/6VNNUBwDbD+Z1AiBx+ZcxC8EIsXcro45Dj8uab3R3Z9jVKyS3PT6LAFXu6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262762},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"b1ad4af1dcaf8ac5cabf0358acce39e7f37cbc20","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.4.3_1773798859827_0.7195640668686933","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"x-openapi-flow","version":"1.4.4","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.4.4","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"7ed3fd9a926b3bcbac04e653578c47f4146495a7","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.4.4.tgz","fileCount":27,"integrity":"sha512-LrA9YZ/pWJW6y/rT6u7bZjtCpz1UqP/W2av0KJISFbH1Fvt9T5d3zN2VpRATQdOVBsKG4fZgApg3jxTZc2pcFA==","signatures":[{"sig":"MEYCIQC0EXnJ4X8gTwv2MDdROTaG3hCkHnrbkpw+A2jk5tmAXgIhAKlhpVS7nQhWtkfypy81YuUnkONkUrb1QI3PiafeOzWX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262762},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"0f4c64e4fdb5e765eafe1c01afedd00cb353b609","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.4.4_1773800583732_0.7714458874017751","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"x-openapi-flow","version":"1.5.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.5.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"887ab350922a77cfdec30ef0d24cfb0f4b5ebeed","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.5.0.tgz","fileCount":38,"integrity":"sha512-3vWqhU0w03q7vCU/5uKy8phT3oQrI93WL3z2pg5e2qi6li+krWTOtByiTgmTE3SInjLWQQQjhz4yinNdMEiwFQ==","signatures":[{"sig":"MEUCIQC/owHqK4YT8qV2R/Jw4a8/8ShX8Io6B3D7RWRZWCR4ygIga3AuNYZXxBezJXl2qIJgDLZ31Aun6nUZMP6KV1x8acA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":350720},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"7250b40002824e84dcdcf956c2eafd38fe024a8d","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.5.0_1773852773340_0.13512886492886778","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"x-openapi-flow","version":"1.5.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.5.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"fbcaa767c746698d0f5da1e9b2d3f68dc8273c39","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.5.1.tgz","fileCount":38,"integrity":"sha512-88lcOFU0YVql75i/j/P5OTssrYK92O56VIguzKQb7vhkO5L3f7YCneDXFz044KNIM7Nci4KUCGOu0Ne9VHtYJA==","signatures":[{"sig":"MEQCIFs4WxAxMNToP5AOtwHwRlJBfX8j3abs7wXkdxmsCEpZAiAEcTnHKDu1ZABowMYKCinMVzPDCxJFfxs0DqGkDZijng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":352425},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"db7542dc0ccb5f07f123c9c8329339d81ba06c0d","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.5.1_1774722725899_0.020344498829495405","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"x-openapi-flow","version":"1.6.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.6.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"b299e00aa892e997a9a9a7bc2198e3091ab00552","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.6.0.tgz","fileCount":39,"integrity":"sha512-fFSocTk3906vYNwTzt7OUiTQZ4G+J12w323/sfynY/dXuBxQvbjuRdmiS5DrTioqyohgz+ykXhraeipLNkzgIA==","signatures":[{"sig":"MEUCIQDoI7eCQkKTUhbF4BqRxRWgoQQDyOWp8rEUouY1w1LAFwIgSx/7aDUHHLZ9UhOwBHHmR6TeMZ/UgpEqBVkqKW5f22U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369973},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"d354d98874b88ada740d63f224fa906c535d32bd","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.6.0_1774891803097_0.9010374590699317","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"x-openapi-flow","version":"1.6.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.6.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"20edac878f42d287cb8f66efe1f1badaaa0e630d","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.6.1.tgz","fileCount":39,"integrity":"sha512-xytg+2AZnA2Nclr5/5lsXwvJUm3v5tCF1E/6CeFhvnvMMhXDTJSUJOWpLXYVxLbOtjlTlfSsKlh3KbVAcCg69g==","signatures":[{"sig":"MEYCIQDQ6q1mkxqcqXIPtIjBBp8ONjlTXwy7Tt9MXoMOOInwugIhANiKq29f9pTR2856OdgJ2oklnsArIFjstLq1DAA9GOZa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":371943},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"5a777f89e1eb6ee0c804d39c56d2b14e57a16450","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.6.1_1775005953284_0.19256113522783913","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"x-openapi-flow","version":"1.6.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.6.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"5cb05df014768a52fd7f72d912255e21cd7b1dd5","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.6.2.tgz","fileCount":39,"integrity":"sha512-eFo+hWeeZDHrDDX9T6EErh2/QtchpcUFaU3wkLLZZWWMnMq5crx4Me1sgWhbeG1iWtw0h5Q54PnAF/Y8lyHUoA==","signatures":[{"sig":"MEYCIQDKB8w5bU8oGPllSw3e+2tp+TSzhscQ20POSdE4Iwde5QIhAJ+l065KhYlLQVB+S62wNKQ/Y2S2T6JBElMmJrN305+b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":373324},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"a6d817fce7ef0baa3383fd825a1e40fdbd63b28c","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.6.2_1775007850833_0.8938370996811869","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"x-openapi-flow","version":"1.6.3","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.6.3","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"e1e01621dfa709607a3b3ae8bf92efd178a2bfed","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.6.3.tgz","fileCount":39,"integrity":"sha512-pdtkPMRSl/ytHhCgpyCY/ZVL0CyvkP1itHasVCFSR/Hr+YJR5JERHP6HYL0HXANovqh2pUtRMX104eKWuB3JOg==","signatures":[{"sig":"MEYCIQD5yrwAK53txp2i6kCP7S+y/KljQQOg6f5LQhMeh1RP7QIhAKIP1UVVuXJfjojCspNmTk8AYhP7YPOM0xfOMuIPqv7w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378992},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"5a05256c0ecc4ad8fdca28d707de39f67e707f62","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.6.3_1775008537356_0.2680156818096511","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"x-openapi-flow","version":"1.6.4","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.6.4","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js"},"dist":{"shasum":"a964f0776ed5228d6a79ec6fa363bca8607e5914","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.6.4.tgz","fileCount":39,"integrity":"sha512-ricPUxAaYzxuQvF9czBVGUfWyYf+RDgOIxvdSBwrjEySHwhBGK5vblc2SpGJPj1qbu5BQ+gbKJT6VTdobt0f5A==","signatures":[{"sig":"MEUCIC2MRROOVJQCs1Z0l3LYTd13aAnAGGY91I3r1mKaT22YAiEA92aKnAU3WFBa3oqQI2UB1gDZilORbA/VRig6VFS/z3Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387148},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"86ebefb18941f9d8347da8903b9919aaa087a363","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.6.4_1775013854808_0.6705887369615375","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"x-openapi-flow","version":"1.7.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow"],"license":"MIT","_id":"x-openapi-flow@1.7.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"1c12bab8560374d1101e558adbab0a1937cba69d","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.7.0.tgz","fileCount":41,"integrity":"sha512-hU4JVBM9v/EwQhYCpZyeWRUm8k6MZXEVAWczxKFXBiDsOgbQsXxkWKtvE8jISVHHBGa1+d0pXwGToxbo76fpfA==","signatures":[{"sig":"MEYCIQDs9+zoRL8DIpDHaJDU6OEaW8yj+NkvCpN4yy1+fkkDGQIhAN9cMWvmrHCH11FDZR5WggZnd2W6Bj+WeMouaYLoiNaD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412902},"main":"lib/validator.js","engines":{"node":">=18"},"gitHead":"55329075a33f68298c195c8bf4af1f361d573880","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"OpenAPI extension for resource workflow and lifecycle management","directories":{},"_nodeVersion":"20.20.1","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.7.0_1775160026749_0.19405587424021742","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"x-openapi-flow","version":"1.7.1","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"license":"MIT","_id":"x-openapi-flow@1.7.1","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"4edbc2743d4dee7a24cca38a257f17777d435c9f","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.7.1.tgz","fileCount":43,"integrity":"sha512-7DpqN40RP+3dmFNAtBmJuhcyHRnVyLwAT3pNQB1pnq+FVAJ+3KYpimZB2UEPduIGjN1BLqknAAqIudh5Nx9LFQ==","signatures":[{"sig":"MEUCIBjuCldpMOdIrVQFVWRdjPIiS2PHekhoXptqapWaDWogAiEAwO8cMg1GOzfyc+TyZz/xLMLEbHfbCPnjstS78TK/mQg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437484},"main":"lib/validator.js","types":"index.d.ts","engines":{"node":">=18"},"gitHead":"10553ba9b318ad4bc3e228a5a62156abedc944c1","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.7.1_1777746246613_0.5539309775615604","host":"s3://npm-registry-packages-npm-production"}},"1.7.2":{"name":"x-openapi-flow","version":"1.7.2","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"license":"MIT","_id":"x-openapi-flow@1.7.2","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"700f2f57695a41336d974980fc1c39cab13fd650","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.7.2.tgz","fileCount":44,"integrity":"sha512-a6IbBbKH7AbsqeMaYiSStZwqNGUmVNLiSFbchxa/HYxrv2Yt4VaRk33WdJjQE1QByGsppKHGrnLmtMCj8XxwSA==","signatures":[{"sig":"MEUCIQCTSgAAka/mWalbUdxfGJQjngX/Hz5rOjuJx9zM/BKIigIga7MiWL/VggWAyT9qoOD8Qik2PBO7Z1iYv5Q79+mB55A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446534},"main":"lib/validator.js","types":"index.d.ts","engines":{"node":">=18"},"gitHead":"015d9e46a09079c57171fc5584a88734b50066df","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.7.2_1777752140454_0.6682663019505011","host":"s3://npm-registry-packages-npm-production"}},"1.7.3":{"name":"x-openapi-flow","version":"1.7.3","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"license":"MIT","_id":"x-openapi-flow@1.7.3","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"ef1e03586f664365e94bae0d8cadfda9471ea540","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.7.3.tgz","fileCount":44,"integrity":"sha512-Sj+c91TGjK5Moudw603AqvgOJWebqJqnd/HzyDCFPjILVrfb4OzwnsJcw8l3D6sI7Z6HLNl/mMumF3KzoE8o9A==","signatures":[{"sig":"MEQCIDTxgUHKrYTKJcR+o5XbJ9t8oR/twjnKaVReKQ09/DH1AiBDRKqgUOI8bK8wndKTQW8zsdeyDYVoNlWrbSAbb10UhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446874},"main":"lib/validator.js","types":"index.d.ts","engines":{"node":">=18"},"gitHead":"c0dbe9d414bface09960ed7adbed772f485868c0","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.7.3_1777753675017_0.8921867483226646","host":"s3://npm-registry-packages-npm-production"}},"1.7.4":{"name":"x-openapi-flow","version":"1.7.4","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"license":"MIT","_id":"x-openapi-flow@1.7.4","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"f4b87272a3f3601b89025730046ce2ead01f355d","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.7.4.tgz","fileCount":44,"integrity":"sha512-yj2iYH2KiE1M+0vwKFC+cK1nTDGSArLiiOEFjXcZv7lcx5NGGi0bpJnQVAWuoVQTMvbR3s7F7FlDQftBdv6sVw==","signatures":[{"sig":"MEUCIQDIHY9GhdWJ7ZhgSbBYPbHc/Qt3nFW34Cu3UYMaAhfDtwIgf62zFXdWCn423qEogDS1KlY+IFKXGw/C+pxNLAU4rEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446933},"main":"lib/validator.js","types":"index.d.ts","engines":{"node":">=18"},"gitHead":"0617ae548a8e7b47b3f15d2a98337b3cded089d8","mcpName":"io.github.tiago-marques/x-openapi-flow-mcp","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.7.4_1777755990851_0.4835320392327216","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"x-openapi-flow","version":"1.8.0","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"license":"MIT","_id":"x-openapi-flow@1.8.0","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"dist":{"shasum":"931d6cc5b98809929384d8e1e1de3283812fd0f3","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.8.0.tgz","fileCount":50,"integrity":"sha512-JpDOTXeR/8/QALpwsnsxs7bn0c+oCOoAJDcKu1uSv9SQRB84iRUizj1ECpMjnb5lDSAynN8oGXbzXYfZUXd6FQ==","signatures":[{"sig":"MEYCIQCxGDSSISjxQzRWd+h/IR8ZliUX12C8RZk3AHRneNgSFQIhAPLT9HXcfHp9nh32joCzSZn91QyqrMwXq+jiGqh7ivCe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD9qagM3+LNj3zeGzhsttstIzzjjuAvNceAGXAxTVhcEQIgGd0PAgyzdI4FgQxSZFrmKa2ppt/67GmJXYsnpL6Clr4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":488072},"main":"lib/validator.js","types":"index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.d.ts","import":"./lib/validator.js","require":"./lib/validator.js"},"./lib/*":{"import":"./lib/*.js","require":"./lib/*.js"},"./lib/*.js":{"import":"./lib/*.js","require":"./lib/*.js"},"./package.json":"./package.json"},"gitHead":"b94d9275cb7df83a6fb69c1cfb0de058d2c73a32","mcpName":"io.github.tiago-marques/x-openapi-flow-mcp","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:esm && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:esm":"node --test tests/esm/esm-interop.test.mjs","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/x-openapi-flow_1.8.0_1789498938661_0.5079435306441891","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"_id":"x-openapi-flow@1.8.1","bin":{"x-openapi-flow":"bin/x-openapi-flow.js","x-openapi-flow-mcp":"bin/x-openapi-flow-mcp.js"},"bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"dist":{"shasum":"18d085494eb5eecd762b72bb4e1fd7466d8f3d20","tarball":"https://registry.npmjs.org/x-openapi-flow/-/x-openapi-flow-1.8.1.tgz","fileCount":50,"integrity":"sha512-b6UiC4Vo0DiOhNMUIGAC7Z+SP1LLP9MIMDo1SlPvYQ8EPBCh/BF2ALhPW1symMtePrMplnRWMcExLWy4IpFvNw==","signatures":[{"sig":"MEUCIEBCVE2mWgXJNTi42GT9cRtZ4G/zL2Sev4gAyn2ayFtOAiEAhD+wm4bKHfXfYIAqWR2wh2s+yK8Bqm1pGeF981FX0dI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB5N8sbI//GFdv6gJewYFBYHlQVZIQWOoGYenYpwaYAnAiEA1NoSswlHDEd61h4ZXIndD+tb1aJ9dtJP4VsdhXta79c="}],"unpackedSize":500045},"main":"lib/validator.js","name":"x-openapi-flow","types":"index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./index.d.ts","import":"./lib/validator.js","require":"./lib/validator.js"},"./lib/*":{"import":"./lib/*.js","require":"./lib/*.js"},"./lib/*.js":{"import":"./lib/*.js","require":"./lib/*.js"},"./package.json":"./package.json"},"gitHead":"76bd26edd7c0e738dcdaf8505460e417ddef3afe","license":"MIT","mcpName":"io.github.tiago-marques/x-openapi-flow-mcp","scripts":{"test":"npm run test:cli && npm run test:ui && npm run test:integration && npm run test:runtime && npm run test:engine && npm run test:mcp && npm run test:esm && npm run test:smoke","prepack":"npm run sync:readme","test:ui":"node --test tests/plugins/*.test.js","test:cli":"node --test tests/cli/cli.test.js","test:esm":"node --test tests/esm/esm-interop.test.mjs","test:mcp":"node --test tests/cli/mcp.test.js","test:smoke":"node bin/x-openapi-flow.js validate examples/payment-api.yaml --profile strict","sync:readme":"node ../scripts/sync-package-readme.js","test:engine":"node --test tests/runtime/state-machine-engine.test.js tests/runtime/openapi-state-machine-adapter.test.js","test:runtime":"node --test tests/runtime/*.test.js","test:examples":"node --test tests/integration/examples.test.js","test:integration":"node --test tests/integration/*.test.js"},"version":"1.8.1","_npmUser":{"name":"metiagomarques","email":"tmarquesx@gmail.com"},"homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"_npmVersion":"10.8.2","description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","directories":{},"maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","js-yaml":"^4.1.0","handlebars":"^4.7.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/x-openapi-flow_1.8.1_1789500377447_0.16557904865684225"}}},"time":{"created":"2026-02-25T02:14:30.218Z","modified":"2026-09-15T19:26:17.785Z","1.1.0":"2026-02-25T02:14:30.459Z","1.1.1":"2026-02-25T02:17:02.206Z","1.1.2":"2026-02-25T02:47:27.492Z","1.1.3":"2026-02-25T03:10:30.460Z","1.2.0":"2026-02-25T05:10:13.510Z","1.2.1":"2026-02-25T06:18:49.118Z","1.2.2":"2026-02-25T06:27:47.270Z","1.2.3":"2026-02-25T06:50:10.786Z","1.3.0":"2026-02-25T21:02:29.438Z","1.3.1":"2026-03-16T04:21:28.829Z","1.3.2":"2026-03-16T04:54:26.458Z","1.3.4":"2026-03-16T05:55:26.698Z","1.3.5":"2026-03-16T17:56:50.431Z","1.3.6":"2026-03-16T18:26:05.866Z","1.3.7":"2026-03-16T18:44:13.534Z","1.4.0":"2026-03-17T03:02:52.470Z","1.4.1":"2026-03-18T01:13:43.016Z","1.4.2":"2026-03-18T01:33:50.222Z","1.4.3":"2026-03-18T01:54:19.972Z","1.4.4":"2026-03-18T02:23:03.890Z","1.5.0":"2026-03-18T16:52:53.485Z","1.5.1":"2026-03-28T18:32:06.049Z","1.6.0":"2026-03-30T17:30:03.295Z","1.6.1":"2026-04-01T01:12:33.433Z","1.6.2":"2026-04-01T01:44:11.044Z","1.6.3":"2026-04-01T01:55:37.515Z","1.6.4":"2026-04-01T03:24:15.020Z","1.7.0":"2026-04-02T20:00:26.949Z","1.7.1":"2026-05-02T18:24:06.750Z","1.7.2":"2026-05-02T20:02:20.643Z","1.7.3":"2026-05-02T20:27:55.181Z","1.7.4":"2026-05-02T21:06:30.994Z","1.8.0":"2026-09-15T19:02:18.752Z","1.8.1":"2026-09-15T19:26:17.572Z"},"bugs":{"url":"https://github.com/tiago-marques/x-openapi-flow/issues"},"license":"MIT","homepage":"https://github.com/tiago-marques/x-openapi-flow#readme","keywords":["openapi","oas","openapi-flow","workflow","lifecycle","x-openapi-flow","api-lifecycle","state-machine","openapi-validation","rest-api","workflow-engine","api-governance","postman","insomnia","swagger","redoc","mcp","ai-agent","fastify","express","code-generation","sdk-generator","runtime-guard","api-design","openapi-extension"],"repository":{"url":"git+https://github.com/tiago-marques/x-openapi-flow.git","type":"git"},"description":"Enforce, visualize and generate code from OpenAPI resource lifecycles — runtime guard, SDK gen, Postman/Insomnia/Redoc adapters, MCP sidecar for AI agents","maintainers":[{"name":"metiagomarques","email":"tmarquesx@gmail.com"}],"readme":"<!-- Auto-generated from /README.md via scripts/sync-package-readme.js. Do not edit directly. -->\n\n# OpenAPI describes APIs. x-openapi-flow turns them into executable workflows — for developers and AI agents.\n\n## Define your API workflows in openapi.x.json and execute them without writing custom clients or orchestration logic\n\n![x-openapi-flow logo](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/x-openapi-flow-logo.svg)\n\n[![npm version](https://img.shields.io/npm/v/x-openapi-flow?label=npm%20version)](https://www.npmjs.com/package/x-openapi-flow)\n[![npm downloads](https://img.shields.io/npm/dm/x-openapi-flow?label=npm%20downloads)](https://www.npmjs.com/package/x-openapi-flow)\n![npm total downloads](https://img.shields.io/npm/dt/x-openapi-flow?style=flat-square)\n![node](https://img.shields.io/badge/node-%3E%3D18-339933)\n![license](https://img.shields.io/npm/l/x-openapi-flow)\n[![CI](https://github.com/tiago-marques/x-openapi-flow/actions/workflows/x-openapi-flow-validate.yml/badge.svg)](https://github.com/tiago-marques/x-openapi-flow/actions/workflows/x-openapi-flow-validate.yml)\n[![open issues](https://img.shields.io/github/issues/tiago-marques/x-openapi-flow)](https://github.com/tiago-marques/x-openapi-flow/issues)\n[![last commit](https://img.shields.io/github/last-commit/tiago-marques/x-openapi-flow)](https://github.com/tiago-marques/x-openapi-flow/commits/main)\n![copilot ready](https://img.shields.io/badge/Copilot-Ready-00BFA5?logo=githubcopilot&logoColor=white)\n> 🚀 2,100+ downloads in the first 3 weeks!\n\n## ⚡ Get started in seconds\n```\nnpx x-openapi-flow init --suggest-transitions\n```\n\n### This generates an openapi.x.json file where you can declaratively define how your API should be executed — not just described.\n\n> See your API lifecycle come alive from your OpenAPI spec, with one simple command\n\n> Validate, document, and generate flow-aware SDKs automatically.\n\n![x-openapi-flow in action](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/ezgif.com-animated-gif-maker.gif)\n\n## What is this?\n\n### x-openapi-flow extends your OpenAPI specification with a workflow layer.\n\n> openapi.json → describes your API  \n> openapi.x.json → describes how to use it (flows)\n\n### Instead of writing imperative code to orchestrate API calls, you define workflows declaratively and run them anywhere.\n\n`x-openapi-flow` adds a **declarative state machine** to your OpenAPI spec.\n\nModel resource lifecycles, enforce valid transitions, and generate flow-aware artifacts for documentation, SDKs, and automation.\n\n## 🚀 Example\n\n> Define stateful workflows and lifecycle transitions directly inside your OpenAPI operations:\n\n```json\n{\n  \"operationId\": \"createOrder\",\n  \"x-openapi-flow\": {\n    \"version\": \"1.0\",\n    \"id\": \"create-order\",\n    \"current_state\": \"created\",\n    \"description\": \"Creates an order and starts the lifecycle\",\n    \"transitions\": [\n      {\n        \"transition_id\": \"order-created-to-paid\",\n        \"trigger_type\": \"synchronous\",\n        \"condition\": \"Payment is confirmed\",\n        \"decision_rule\": \"payOrder:response.200.body.payment_status == 'approved'\",\n        \"target_state\": \"paid\",\n        \"next_operation_id\": \"payOrder\",\n        \"operation_role\": \"mutate\",\n        \"prerequisite_operation_ids\": [\"createOrder\"],\n        \"evidence_refs\": [\n          \"payOrder:response.200.body.payment_status\"\n        ],\n        \"propagated_field_refs\": [\n          \"createOrder:response.201.body.order_id\"\n        ],\n        \"failure_paths\": [\n          {\n            \"reason\": \"Payment denied\",\n            \"target_state\": \"payment_failed\",\n            \"next_operation_id\": \"getOrder\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\nThis flow defines an order lifecycle directly inside your OpenAPI:\n\n* Starts in the `created` state\n* Transitions to `paid` when payment is confirmed\n* Supports both synchronous and polling-based transitions\n* Propagates data between operations automatically\n* Can include explicit decision/evidence and failure-path metadata for AI-guided orchestration\n\nInstead of manually orchestrating API calls, the workflow is fully described alongside your API specification.\n\n## Why This Exists\n\nBuilding APIs is cheap. Building **complex, multi-step APIs that teams actually use correctly** is hard.  \n\nTeams face recurring problems:\n\n- 📄 **Manual documentation is brittle** – OpenAPI specs are static, often out of sync with real workflows  \n- 🤖 **AI agents can hallucinate** – LLMs and code-generating agents may produce invalid calls if workflows are unclear or undocumented  \n- 🤯 **Workflows are confusing** – multi-step operations are hard to track for humans and AI agents \n- ⚠️ **Invalid calls slip through** – developers make mistakes because lifecycle rules aren’t enforced  \n- ⏱️ **Integration slows down** – SDKs, Postman collections, and docs need constant manual updates  \n- 🛡️ **Hard to prevent errors in production** – without explicit lifecycle rules, invalid operations can reach live systems, causing outages or inconsistencies  \n\n\nx-openapi-flow exists to **solve these pains**: it makes lifecycles explicit, validates transitions automatically, and generates flow-aware docs and SDKs — **so teams move faster, make fewer mistakes, and ship confident integrations**.\n\n## What This Enables\n\nTurn your OpenAPI spec into a single source of truth for API behavior:\n- Visualize API lifecycles directly in [Swagger UI](#swagger-ui-demo) and [Redoc](#redoc-demo)\n- Validate flows and state transitions in [CI pipelines](#cli-commands)\n- Generate [lifecycle diagrams automatically](#mermaid-example) from your OpenAPI spec\n- Build [SDKs](#sdk-generation) that understand and respect API workflows\n- Export [Postman](#postman-demo) and [Insomnia](#insomnia-demo) collections organized by lifecycle\n- Create [AI-ready API contracts](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/engineering/AI-Sidecar-Authoring.md) for agentic integrations\n- Export a dense, non-prose [flow contract for coding agents](#cli-commands) (`export-llm-flows`) — or call it directly as an MCP tool — so an agent like Claude Code knows the exact call order, decision rules, and field refs to implement an integration, without re-deriving them from human docs\n\n## Quick Start (without OpenAPI file)\n\n## Start in 2 Minutes (Online Playground)\n\nPrefer no local setup? Open the minimal runtime-guard demo directly in your browser:\n\n- StackBlitz: https://stackblitz.com/github/tiago-marques/x-openapi-flow/tree/main/example/runtime-guard/minimal-order\n- Codespaces (repo): https://github.com/tiago-marques/x-openapi-flow\n\nOnce open, run:\n\n```bash\nnpm install\nnpm run start\n```\n\nThen in another terminal:\n\n```bash\ncurl -s -X POST http://localhost:3110/orders\ncurl -i -X POST http://localhost:3110/orders/<id>/ship\n```\n\nExpected: `409 INVALID_STATE_TRANSITION`.\n\nFastest way to see value (guided scaffold):\n\n```bash\nnpx x-openapi-flow quickstart\ncd x-openapi-flow-quickstart\nnpm install\nnpm start\n```\n\nOptional runtime:\n\n```bash\nnpx x-openapi-flow quickstart --runtime fastify\n```\n\nThen run:\n\n```bash\ncurl -s -X POST http://localhost:3110/orders\ncurl -i -X POST http://localhost:3110/orders/<id>/ship\n```\n\nExpected: `409 INVALID_STATE_TRANSITION`.\n\n---\n### If you already have an OpenAPI file, use the sidecar workflow:\n\n\n\n\nInitialize flow support in your project:\n\n```bash\nnpx x-openapi-flow init\n# optional: infer suggested transitions using naming heuristics\nnpx x-openapi-flow init --suggest-transitions\n```\n\nAfter regenerating your OpenAPI file, apply and validate the flow (optional):\n\n```bash\nnpx x-openapi-flow apply openapi.yaml --out openapi.flow.yaml\n\nnpx x-openapi-flow validate openapi.flow.yaml --profile strict --strict-quality\n```\n\nThis will:\n\n- enrich your OpenAPI spec with flow metadata\n- validate lifecycle consistency\n- catch invalid transitions early\n\n💡 Tip: run this in CI to enforce API workflow correctness\n\n### Less Verbose DSL for Large Flows\n\nFor larger APIs, you can define flow rules by resource (with shared transitions/defaults) and reduce duplication in sidecar files.\n\nSee: [Sidecar Contract](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/Sidecar-Contract.md)\n\n### GitHub Action (One-Step CI Validation)\n\nUse the official reusable action to validate lifecycle rules in CI with a single step:\n\n```yaml\n- name: Validate OpenAPI flow rules\n  uses: tiago-marques/x-openapi-flow@v1\n  with:\n    openapi-file: openapi.flow.yaml\n    profile: strict\n    strict-quality: \"true\"\n```\n\nIntegration guide: [GitHub-Actions-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/GitHub-Actions-Integration.md)\n\n<a id=\"mermaid-example\"></a>\n### Real Lifecycle Example\n\nHere’s a real-world payment lifecycle represented in x-openapi-flow:\n\n```\nCREATED -> AUTHORIZED -> CAPTURED -> REFUNDED\n```\n\nGenerate a visual graph of the lifecycle:\n\n```bash\nnpx x-openapi-flow graph openapi.flow.yaml --format mermaid\n```\n\nResulting diagram:\n\n```mermaid\ngraph TD\nCREATED --> AUTHORIZED\nAUTHORIZED --> CAPTURED\nCAPTURED --> REFUNDED\n```\n\n> This visualization makes your API workflow explicit, easy to communicate, and ready for documentation or demos.\n\n<a id=\"sdk-generation\"></a>\n## Generate Flow-Aware SDKs\n\nCreate a TypeScript or Python SDK that **respects your API’s lifecycle and transition rules**, following best practices seen in leading companies like **Stripe** and **Adyen**:\n\n- **Orchestrator by model**: each resource exposes methods that enforce valid transitions\n- **Chainable API calls**: perform sequences naturally and safely\n\n```bash\nnpx x-openapi-flow generate-sdk openapi.flow.yaml --lang typescript --output ./sdk\nnpx x-openapi-flow generate-sdk openapi.flow.yaml --lang python --output ./sdk\n```\n\nExample usage (TypeScript):\n\n```ts\nconst payment = await sdk.payments.create({ amount: 1000 });\nawait payment.authorize();\nawait payment.capture();\n```\n\nExample usage (Python — zero-dependency, stdlib `urllib`-backed client, generated under `./sdk/src`):\n\n```python\nfrom src import FlowApiClient\nfrom src.http_client import UrllibHttpClient\n\nclient = FlowApiClient(UrllibHttpClient(\"https://api.example.com\"))\npayment = client.payment.create({\"body\": {\"amount\": 1000}})\npayment = payment.authorize()\npayment = payment.capture()\n```\n\n> This SDK guides developers through valid transition paths, following patterns used by market leaders to ensure safe and intuitive integrations.\n\n## Runtime Enforcement (Express + Fastify + Hono)\n\nCI validation is important, but production safety needs request-time enforcement.\n\n`x-openapi-flow` now includes an official runtime guard for Node.js that can block invalid state transitions during request handling.\n\n- Works with **Express** and **Fastify**\n- Resolves operations by `operationId` (when available) or by method + route\n- Reads current resource state using your own persistence callback\n- Blocks invalid transitions with explicit `409` error payloads\n\nInstall and use directly in your API server:\n\n```js\nconst {\n  createExpressFlowGuard,\n  createFastifyFlowGuard,\n  createHonoFlowGuard,\n} = require(\"x-openapi-flow/lib/runtime-guard\");\n```\n\nExpress example:\n\n```js\nconst express = require(\"express\");\nconst { createExpressFlowGuard } = require(\"x-openapi-flow/lib/runtime-guard\");\nconst openapi = require(\"./openapi.flow.json\");\n\nconst app = express();\n\napp.use(\n  createExpressFlowGuard({\n    openapi,\n    async getCurrentState({ resourceId }) {\n      if (!resourceId) return null;\n      return paymentStore.getState(resourceId); // your DB/service lookup\n    },\n    resolveResourceId: ({ params }) => params.id || null,\n  })\n);\n```\n\nFastify example:\n\n```js\nconst fastify = require(\"fastify\")();\nconst { createFastifyFlowGuard } = require(\"x-openapi-flow/lib/runtime-guard\");\nconst openapi = require(\"./openapi.flow.json\");\n\nfastify.addHook(\n  \"preHandler\",\n  createFastifyFlowGuard({\n    openapi,\n    async getCurrentState({ resourceId }) {\n      if (!resourceId) return null;\n      return paymentStore.getState(resourceId);\n    },\n    resolveResourceId: ({ params }) => params.id || null,\n  })\n);\n```\n\nHono example:\n\n```js\nconst { Hono } = require(\"hono\");\nconst { createHonoFlowGuard } = require(\"x-openapi-flow/lib/runtime-guard\");\nconst openapi = require(\"./openapi.flow.json\");\n\nconst app = new Hono();\n\napp.use(\n  \"*\",\n  createHonoFlowGuard({\n    openapi,\n    async getCurrentState({ resourceId }) {\n      if (!resourceId) return null;\n      return paymentStore.getState(resourceId);\n    },\n    resolveResourceId: ({ params }) => params.id || null,\n  })\n);\n```\n\nError payload for blocked transition:\n\n```json\n{\n  \"error\": {\n    \"code\": \"INVALID_STATE_TRANSITION\",\n    \"message\": \"Blocked invalid transition for operation 'capturePayment'. Current state 'CREATED' cannot transition to this operation.\",\n    \"operation_id\": \"capturePayment\",\n    \"current_state\": \"CREATED\",\n    \"allowed_from_states\": [\"AUTHORIZED\"],\n    \"resource_id\": \"pay_123\"\n  }\n}\n```\n\nMore details: [Runtime Guard](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/Runtime-Guard.md)\n\n### Built-in Persistence Adapters\n\nNo need to write your own `getCurrentState` from scratch. x-openapi-flow ships five ready-made adapters:\n\n```js\nconst {\n  MemoryAdapter,   // in-process Map — ideal for tests and single-instance dev\n  FileAdapter,     // JSON file on disk — great for demos and local servers\n  RedisAdapter,    // ioredis-backed — production-ready, requires: npm install ioredis\n  GenericSQLAdapter, // any SQL DB (pg, mysql2, knex…) via query callback\n  MongoAdapter,    // MongoDB Collection-backed, requires: npm install mongodb\n} = require(\"x-openapi-flow/lib/runtime-guard\");\n\n// in-memory (testing / local)\nconst store = new MemoryAdapter();\napp.use(createExpressFlowGuard({ openapi, ...store.forGuard() }));\n\n// persist every transition to Redis\nconst Redis = require(\"ioredis\");\nconst redisStore = new RedisAdapter({ client: new Redis(), prefix: \"orders:\" });\napp.use(createExpressFlowGuard({ openapi, ...redisStore.forGuard() }));\n\n// call setState after each successful request to keep the state in sync\napp.post(\"/orders/:id/pay\", async (req, res) => {\n  await redisStore.setState({ resourceId: req.params.id, state: \"paid\" });\n  res.json({ ok: true });\n});\n```\n\n**GenericSQLAdapter** example with `pg`:\n\n```js\nconst { Pool } = require(\"pg\");\nconst pool = new Pool();\nconst sqlStore = new GenericSQLAdapter({\n  query: (sql, params) => pool.query(sql, params).then(r => r.rows),\n  dialect: \"pg\",\n});\nawait sqlStore.ensureTable(); // CREATE TABLE IF NOT EXISTS xflow_state (…)\napp.use(createExpressFlowGuard({ openapi, ...sqlStore.forGuard() }));\n```\n\n**MongoAdapter** example with the official `mongodb` driver:\n\n```js\nconst { MongoClient } = require(\"mongodb\");\nconst client = await new MongoClient(process.env.MONGO_URL).connect();\nconst mongoStore = new MongoAdapter({\n  collection: client.db(\"orders\").collection(\"xflow_state\"),\n});\napp.use(createExpressFlowGuard({ openapi, ...mongoStore.forGuard() }));\n```\n\nAll adapters implement `getCurrentState`, `setState`, `deleteState` and `forGuard()` — a convenience method that returns the exact shape expected by the guard options.\n\n### Observability Hooks (Metrics/Audit)\n\nYou can instrument runtime decisions with `onDecision` to feed Prometheus, logs, or tracing.\n\n```js\nconst { Counter } = require(\"prom-client\");\nconst { createExpressFlowGuard } = require(\"x-openapi-flow/lib/runtime-guard\");\n\nconst flowDecisions = new Counter({\n  name: \"xflow_runtime_guard_decisions_total\",\n  help: \"Runtime guard decisions by type and operation\",\n  labelNames: [\"decision\", \"operation_id\"],\n});\n\napp.use(\n  createExpressFlowGuard({\n    openapi,\n    ...store.forGuard(),\n    onDecision(event) {\n      flowDecisions.inc({\n        decision: event.decision,\n        operation_id: event.operationId || \"unknown\",\n      });\n    },\n  })\n);\n```\n\nCommon decision values include:\n- `allowed_transition`\n- `allowed_idempotent_state`\n- `allowed_initial_state`\n- `denied_invalid_transition`\n- `denied_missing_resource_id`\n- `denied_unknown_operation`\n- `skipped_unknown_operation`\n\n\nWant to see the value immediately? Use the official minimal demo:\n\n- [example/runtime-guard/minimal-order/README.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/example/runtime-guard/minimal-order/README.md)\n\nRun in under 5 minutes:\n\n```bash\ncd example/runtime-guard/minimal-order\nnpm install\nnpm start\n```\n\nCreate an order, then try to ship before payment (must return `409 INVALID_STATE_TRANSITION`):\n\n```bash\ncurl -s -X POST http://localhost:3110/orders\ncurl -i -X POST http://localhost:3110/orders/<id>/ship\n```\n\nHTTPie equivalent:\n\n```bash\nhttp POST :3110/orders\nhttp -v POST :3110/orders/<id>/ship\n```\n\n## Programmatic State Machine Engine\n\nUse a reusable deterministic engine independently of CLI and OpenAPI parsing:\n\n```js\nconst { createStateMachineEngine } = require(\"x-openapi-flow/lib/state-machine-engine\");\n\nconst engine = createStateMachineEngine({\n  transitions: [\n    { from: \"CREATED\", action: \"confirm\", to: \"CONFIRMED\" },\n    { from: \"CONFIRMED\", action: \"ship\", to: \"SHIPPED\" },\n  ],\n});\n\nengine.canTransition(\"CREATED\", \"confirm\");\nengine.getNextState(\"CREATED\", \"confirm\");\nengine.validateFlow({ startState: \"CREATED\", actions: [\"confirm\", \"ship\"] });\n```\n\nMore details: [State Machine Engine](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/State-Machine-Engine.md)\n\n### OpenAPI to Engine Adapter\n\nConvert `x-openapi-flow` metadata to a pure engine definition:\n\n```js\nconst { createStateMachineAdapterModel } = require(\"x-openapi-flow/lib/openapi-state-machine-adapter\");\nconst { createStateMachineEngine } = require(\"x-openapi-flow/lib/state-machine-engine\");\n\nconst model = createStateMachineAdapterModel({ openapiPath: \"./openapi.flow.yaml\" });\nconst engine = createStateMachineEngine(model.definition);\n```\n\nMore details: [OpenAPI State Machine Adapter](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/OpenAPI-State-Machine-Adapter.md)\n\n## Who Benefits Most\n\nx-openapi-flow is ideal for teams and organizations that want **clear, enforceable API workflows**:\n\n- **API-first organizations** – maintain a single source of truth for API behavior  \n- **Teams building AI agents** – provide AI-friendly contracts and enforce correct API usage, so agents can safely call endpoints in the right order without guessing or violating workflow rules\n- **API platform teams** – ensure consistent lifecycle rules across endpoints  \n- **Companies with complex API workflows** – reduce errors and ambiguity in multi-step processes  \n- **SDK teams** – generate flow-aware SDKs that guide developers  \n\n\n## Why x-openapi-flow?\n\nSee how **x-openapi-flow extends OpenAPI** to make your API workflows explicit, enforceable, and actionable:\n\n| Capability | OpenAPI | x-openapi-flow |\n| --- | --- | --- |\n| Endpoint contracts | ✅ Yes | ✅ Yes (fully compatible, extended) |\n| Lifecycle states | ❌ No | ✅ Yes – define states for each resource |\n| Transition validation | ❌ No | ✅ Yes – catch invalid calls before runtime |\n| Flow diagrams | ❌ No | ✅ Yes – generate visual lifecycle graphs |\n| Usage guidance (next valid actions) | Limited/manual | ✅ Built-in via lifecycle metadata – guides developers and AI agents |\n\n### How does it compare to OpenAPI Workflows (Arazzo) and AsyncAPI?\n\n| Dimension | x-openapi-flow | OpenAPI Workflows (Arazzo) | AsyncAPI |\n| --- | --- | --- | --- |\n| **Primary focus** | Resource lifecycle states & runtime enforcement | Multi-step API workflows (orchestration scripts) | Event-driven / async messaging APIs |\n| **Lifecycle states** | ✅ Explicit states per resource | ❌ No state model | ❌ No state model |\n| **Runtime enforcement** | ✅ Express/Fastify/Hono middleware (409 on invalid transitions) | ❌ Spec-only, no runtime guard | ❌ Spec-only |\n| **SDK generation** | ✅ TypeScript, Python | ❌ No codegen | Limited |\n| **Postman / Insomnia export** | ✅ Built-in adapters | ❌ No | ❌ No |\n| **AI agent support** | ✅ MCP sidecar + machine-oriented flow contract (`export-llm-flows`) | ❌ No | ❌ No |\n| **Breaking change detection** | ✅ `diff --breaking-only --fail-on-breaking` | ❌ No | ❌ No |\n| **CI validation** | ✅ CLI + GitHub Action | ❌ No official CLI | Limited |\n| **OpenAPI compatibility** | ✅ Sidecar extends existing specs | Separate Arazzo spec | Separate AsyncAPI spec |\n\n**In short:** use x-openapi-flow when you need **enforceable, stateful API lifecycles** that go beyond documentation into runtime safety, SDK generation, and AI-ready contracts. Use Arazzo for scripting multi-step HTTP journeys. Use AsyncAPI for documenting event/message-driven systems.\n\n## Integration Demos\n\nExplore how x-openapi-flow integrates with popular API tools, making lifecycles and flows explicit for documentation and testing.\n\n<a id=\"swagger-ui-demo\"></a>\n### Swagger UI – Visualize Flows in Your Docs\n\n```bash\ncd example/swagger-ui\nnpm install\nnpm run apply\nnpm start\n```\n\n![Swagger UI Flow Lifecycle 1](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/swagger-ui-flow-lifecycle.png)\n> Lifecycle panel shows valid states and transitions\n\n![Swagger UI Flow Lifecycle 2](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/swagger-ui-flow-lifecycle-2.png)\n> Detailed view of transitions per operation\n\n<a id=\"redoc-demo\"></a>\n### Redoc – Flow-Aware Documentation\n\n```bash\ncd example/redoc\nnpm install\nnpm run apply\nnpm run generate\n```\n\n![Redoc Flow Lifecycle 1](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/redoc-flow-lifecycle.png)\n![Redoc Flow Lifecycle 2](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/redoc-flow-lifecycle-2.png)\n![Redoc Flow Lifecycle 3](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/redoc-flow-lifecycle-3.png)\n> Auto-generated lifecycle diagrams make documentation clear and consistent\n\n<a id=\"postman-demo\"></a>\n### Postman – Organized API Collections\n\n```bash\ncd example/postman\nnpm install\nnpm run apply\nnpm run generate\n```\n\n![Postman Flow Lifecycle 1](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/postman-flow-lifecycle.png)\n![Postman Flow Lifecycle 2](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/postman-flow-lifecycle-2.png)\n> Collections reflect lifecycle order, reducing integration errors\n\n<a id=\"insomnia-demo\"></a>\n### Insomnia – Organized API Collections\n\n```bash\ncd example/insomnia\nnpm install\nnpm run apply\nnpm run generate\n```\n\n![Insomnia Flow Lifecycle 1](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/insomnia-flow-lifecycle.png)\n![Insomnia Flow Lifecycle 2](https://raw.githubusercontent.com/tiago-marques/x-openapi-flow/main/docs/assets/insomnia-flow-lifecycle-2.png)\n> Requests are pre-organized according to lifecycle transitions\n\n<a id=\"cli-commands\"></a>\n## CLI Reference – Common Commands\n\nUse x-openapi-flow from the command line to **manage, validate, visualize, and generate SDKs/docs for your API workflows**.  \n\n### General\n\n```bash\nnpx x-openapi-flow help [command]         # show help for a specific command\n\nnpx x-openapi-flow --help                 # general help\n\nnpx x-openapi-flow version                # show version\n\nnpx x-openapi-flow doctor [--config path] # check setup and config\n\nnpx x-openapi-flow completion [bash|zsh]  # enable shell autocompletion\n\nnpx x-openapi-flow quickstart [--dir path] [--runtime express|fastify] [--force] # scaffold runnable onboarding project\n```\n\n### Workflow Management\n\n```bash\n# initialize flow support\nnpx x-openapi-flow init [--flows path] [--force] [--dry-run]   \n\n# apply flows to OpenAPI\nnpx x-openapi-flow apply [openapi-file] [--flows path] [--out path]  \n\n# validate transitions\nnpx x-openapi-flow validate <openapi-file> [--profile core|relaxed|strict] [--strict-quality] [--semantic]  \n\n# preview sidecar changes\nnpx x-openapi-flow diff [openapi-file] [--format pretty|json]\n\n# detect breaking flow changes (use in CI to fail PRs)\nnpx x-openapi-flow diff [openapi-file] --breaking-only --fail-on-breaking\n\n# generate a Markdown migration guide for breaking flow changes\nnpx x-openapi-flow migrate [openapi-file] [--flows path] [--format markdown|json] [--out path]\n```\n\n### Visualization & Documentation\n\n```bash\n# generate lifecycle diagrams\nnpx x-openapi-flow graph [openapi-file] [--format mermaid|json]   \n\n# generate Redoc docs\nnpx x-openapi-flow generate-redoc [openapi-file] [--output path]   \n\n# export human-readable flow docs (Mermaid diagrams + prose)\nnpx x-openapi-flow export-doc-flows [openapi-file] [--output path] [--format markdown|json]  \n\n# export a machine-oriented flow contract for coding agents (not for humans)\nnpx x-openapi-flow export-llm-flows [openapi-file] [--output path] [--format yaml|json]\n```\n\n### SDK Generation\n\n```bash\n# generate flow-aware SDK (typescript or python)\nnpx x-openapi-flow generate-sdk [openapi-file] --lang typescript|python [--output path] \n```\n\n### Test Generation\n\n```bash\n# generate executable flow tests (happy path + invalid transitions)\nnpx x-openapi-flow generate-flow-tests [openapi-file] [--format jest|vitest|postman] [--output path]\n\n# postman/newman-oriented collection with flow scripts\nnpx x-openapi-flow generate-flow-tests [openapi-file] --format postman [--output path] [--with-scripts]\n```\n\nFull details:  \n\n- [CLI-Reference.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/CLI-Reference.md)  \n- [README.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/x-openapi-flow/README.md)\n\n## NestJS Integration\n\nDedicated package: **x-openapi-flow-nestjs-kit**\n\n```bash\nnpm install x-openapi-flow x-openapi-flow-nestjs-kit\n```\n\nThen import from `x-openapi-flow-nestjs-kit`.\n\nThis package wraps the official runtime-guard helpers and exposes a NestJS-first API.\n\nRelease automation for this package uses dedicated tags in the format `nestjs-v<version>`\n(example: `nestjs-v0.1.1`) so it does not conflict with `x-openapi-flow` tags.\n\n### Option A: Middleware (drop-in)\n\n```ts\n// flow-guard.middleware.ts\nimport { Injectable, NestMiddleware } from \"@nestjs/common\";\nimport { createFlowMiddleware, MemoryAdapter } from \"x-openapi-flow-nestjs-kit\";\nimport openapi from \"./openapi.flow.json\";\n\nconst store = new MemoryAdapter(); // swap for RedisAdapter or GenericSQLAdapter in production\nconst guard = createFlowMiddleware({ openapi, ...store.forGuard() });\n\n@Injectable()\nexport class FlowGuardMiddleware implements NestMiddleware {\n  use(req: any, res: any, next: () => void) {\n    guard.use(req, res, next);\n  }\n}\n\n// app.module.ts — apply to specific routes\nexport class AppModule implements NestModule {\n  configure(consumer: MiddlewareConsumer) {\n    consumer.apply(FlowGuardMiddleware).forRoutes(\"orders\");\n  }\n}\n```\n\n### Option B: CanActivate Guard\n\n```ts\n// flow.guard.ts\nimport { CanActivate, ExecutionContext, Injectable } from \"@nestjs/common\";\nimport { createFlowGuard, MemoryAdapter } from \"x-openapi-flow-nestjs-kit\";\nimport openapi from \"./openapi.flow.json\";\n\nconst store = new MemoryAdapter();\nconst flowGuard = createFlowGuard({ openapi, ...store.forGuard() });\n\n@Injectable()\nexport class FlowGuard implements CanActivate {\n  canActivate(context: ExecutionContext) {\n    return flowGuard.canActivate(context);\n  }\n}\n```\n\nAfter each successful state-changing request, call `store.setState` to advance the resource:\n\n```ts\n@Post(\":id/pay\")\nasync pay(@Param(\"id\") id: string) {\n  // … business logic …\n  await store.setState({ resourceId: id, state: \"paid\" });\n  return { ok: true };\n}\n```\n\n## Documentation and Guides\n\nGet the most out of x-openapi-flow with detailed guides, examples, and integration instructions:\n\n- **Adoption Guide** – [docs/wiki/getting-started/Adoption-Playbook.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/getting-started/Adoption-Playbook.md)  \n  Learn how to introduce x-openapi-flow into your API workflow efficiently\n\n- **Troubleshooting** – [docs/wiki/reference/Troubleshooting.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/reference/Troubleshooting.md)  \n  Quick solutions to common issues and validation errors\n\n- **Real Examples** – [docs/wiki/engineering/Real-Examples.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/engineering/Real-Examples.md)  \n  Explore real OpenAPI specs enhanced with lifecycle metadata\n\n- **Integrations**:  \n  - **GitHub Actions** – [docs/wiki/integrations/GitHub-Actions-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/GitHub-Actions-Integration.md)  \n    Validate flow rules in CI in one reusable workflow step\n  - **Swagger UI** – [docs/wiki/integrations/Swagger-UI-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/Swagger-UI-Integration.md)  \n    See flow-aware panels in Swagger UI  \n  - **Redoc** – [docs/wiki/integrations/Redoc-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/Redoc-Integration.md)  \n    Generate lifecycle diagrams in Redoc documentation  \n  - **Postman** – [docs/wiki/integrations/Postman-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/Postman-Integration.md)  \n    Organize collections according to valid transitions  \n  - **Insomnia** – [docs/wiki/integrations/Insomnia-Integration.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/integrations/Insomnia-Integration.md)  \n    Pre-configure requests according to lifecycle flows\n\n## Community and Proof\n\n- **Share your case study** – [docs/wiki/community/Case-Study-Template.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/docs/wiki/community/Case-Study-Template.md)\n- **Open discussions and ideas** – use GitHub Issues to share adoption blockers, metrics, and integration stories\n: use the structured forms at [.github/ISSUE_TEMPLATE/case-study.yml](https://github.com/tiago-marques/x-openapi-flow/blob/main/.github/ISSUE_TEMPLATE/case-study.yml) and [.github/ISSUE_TEMPLATE/adoption-blocker.yml](https://github.com/tiago-marques/x-openapi-flow/blob/main/.github/ISSUE_TEMPLATE/adoption-blocker.yml)\n- **Prove impact with metrics** – track `denied_invalid_transition`, onboarding lead time, and CI catch rate before/after adoption\n\n## Roadmap\n\nWe’re actively expanding x-openapi-flow to support multiple platforms and SDKs. Check our progress:\n\n- 🗂 **Roadmap Overview** – [#2](https://github.com/tiago-marques/x-openapi-flow/issues/2)  \n  See planned features and high-level goals\n\n- 🐍 **Python SDK MVP** – [#3](https://github.com/tiago-marques/x-openapi-flow/issues/3)  \n  Enable Python developers to use flow-aware SDKs\n\n- 🏎 **Go SDK MVP** – [#4](https://github.com/tiago-marques/x-openapi-flow/issues/4)  \n  Bring lifecycle-aware SDKs to Go projects\n\n- ☕ **Kotlin SDK MVP** – [#5](https://github.com/tiago-marques/x-openapi-flow/issues/5)  \n  Support Android and JVM developers with flow-aware SDKs\n\n## Changelog\n\nKeep track of updates and improvements in x-openapi-flow:\n\n- **Latest Version (v1.7.0)** – [CHANGELOG.md#170---2026-04-02](https://github.com/tiago-marques/x-openapi-flow/blob/main/CHANGELOG.md#170---2026-04-02)  \n  See what shipped in the current release\n\n- **Version History** – [CHANGELOG.md](https://github.com/tiago-marques/x-openapi-flow/blob/main/CHANGELOG.md)  \n  Review the full version history and past updates\n\n- **Release Notes** – [GitHub Release v1.7.0](https://github.com/tiago-marques/x-openapi-flow/releases/tag/v1.7.0)  \n  See detailed notes for the latest release, including new features and fixes\n\n## Documentation Language Policy\n\nTo ensure clarity and accessibility for the global developer community, **all project documentation should be written in English**. This helps contributors, users, and AI agents understand and use x-openapi-flow consistently.\n","readmeFilename":"README.md"}