{"_id":"@archtx/procedures","_rev":"37-80594d1eac24efbd3362fd32efd2ae5f","name":"@archtx/procedures","dist-tags":{"latest":"6.2.0"},"versions":{"1.0.1":{"name":"@archtx/procedures","version":"1.0.1","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.0.1","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"251430cf83ad44ae4000aad8d3f66719dcecb7e2","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.0.1.tgz","fileCount":45,"integrity":"sha512-bljP27g4RKvkl9kwsIhHhl4rd8AQ4oxJgT1ivE2yISYcqhS1Vkb9n8Fblw3LlWQQi0ETgpgEhQbfZOHRbhFUZA==","signatures":[{"sig":"MEUCIQDke/Zxn/27V86gzJS1Je0wpG8nNx9Gtdn0BNKNLd0Y1gIgBObVuRc0UJQ9FXm5+7dPkcdeCDfZt4leHNbOdudX5KY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246326},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","gitHead":"7c6ef428433d9010cc9b5fc2eb245fcf2b84be0e","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.2.4","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.0.1_1737502360512_0.6040956486704152","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@archtx/procedures","version":"1.1.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"bee96b0d007d5ba2b08175b77710eb7fb1c03a85","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.0.tgz","fileCount":45,"integrity":"sha512-OlUyAKOraEc/m7aOxgngGBnsQvBgxgFLB1Bawe2havEQIdzxRICtWLrsABz7ecrzpKi4nXIqlgJpDu2rRtS7GA==","signatures":[{"sig":"MEYCIQCsFXNa/QiIA66Qx7rWCyMusYjhax7pcJfUqauXcrIluwIhAPivyYkA4hA+Cedqisub+eoeilVNQ2MinRm/tpCxDRQ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248858},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","gitHead":"d5ea5173c44f680cbc2dd500c2298a5c5430e389","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.2.4","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.0_1737609868513_0.18983846336944765","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@archtx/procedures","version":"1.1.1","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.1","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"68c6a9c06c5e1fd3453ad3883a4b3476cd0aa485","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.1.tgz","fileCount":45,"integrity":"sha512-XkwKe8j6Ty2kLIr0gUujqVq51X16zY5a+D5mz1OfFE6In2vDphNaqBShwtZI4t/pgsrv+qYlSoN2gVCwq73Nmw==","signatures":[{"sig":"MEUCIAZkFqKQX3VjJwr20Tr9m1RM1JM3xKD9mRkKda+nxkIAAiEAxg0GE9YMwQLnpWEZ5lVa+nv1cdlax2COQESX/HboWIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248544},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","gitHead":"228c8daa1f82ca56a2dfab0f4a7c8e0cc0926454","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.2.4","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.1_1737748686042_0.5999360237998812","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@archtx/procedures","version":"1.1.2","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.2","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"11f23ecbedd11707ca45947971da78e9bd69e079","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.2.tgz","fileCount":45,"integrity":"sha512-PFGH97IyfPNpb2cwWq9AGTAsAY1Ucr0oc3+rvrRfAzF81Ktt7suHMjOV41Cfzatk5+nftjkEM59efoxOcje+kQ==","signatures":[{"sig":"MEQCIDLkPu/pChDrSzf3zZz6LSdn/EhU3KrK3TeQxGVI+p9qAiB9OjJHvwzTEq+PlETNAOaKD5o8z+x0egx2nHE4xcAbRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249363},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"import":"./dist/exports.js"}},"gitHead":"aec98a4a37194fb3541386f87bae2d01390bdf54","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.2.4","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.2_1738004357383_0.19779757742697535","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@archtx/procedures","version":"1.1.3","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.3","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"a7b752a410344657eb92f3499753df8503b2baad","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.3.tgz","fileCount":45,"integrity":"sha512-xkMTZCAqKMGdlroQNa/8i7t2ESbvZW4kxGom8mqd+4ZCJ40FEkBkuphD5l5Ak0C4GsLCeY9NN5U932NyEyWI9g==","signatures":[{"sig":"MEUCIQD2GVMOxs+vgJ2l48zQl8sHP9DoTcIEW/iWRVrWcHLjJAIgfAXZG0PjBBMFZ3rqLQpfptDX2mTuwr8gpj3KOxMl6zM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251212},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"import":"./dist/exports.js"}},"gitHead":"1c9fb6632601a25fffe7f66007b928a9672a66e6","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.3_1738030164454_0.46245855667320757","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@archtx/procedures","version":"1.1.4","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.4","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"6561b4913ad85b12989b8f3a0fe6ada557ccdc84","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.4.tgz","fileCount":45,"integrity":"sha512-gg+oKW95RdOpBWreAfX4RktHiBOBOyHOTnq2I0W07BFb3S/PmIeWzwM7ITrx6SRM0sDo6YppgZXnQ+1EMx583g==","signatures":[{"sig":"MEMCH2UuamLp9GVGm/2tn4a1+7YC2GgxAHJGWqnRjcy77m8CIADyQnZCHdXoXGBVHRj+R/RuLKCHsbfizDSeI9oK3cuf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251288},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"a15c584f306a981cdd681206e139bd734862adee","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.4_1740599131158_0.37831909612576964","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@archtx/procedures","version":"1.1.5","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.5","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"c464becccfe7309a9ffd95e356de1cdcb26fd8af","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.5.tgz","fileCount":45,"integrity":"sha512-LZIY1RnaYpc4/wNg9r50ukk1wDRbAOWHNDDQphTykl9i0IQwYKfF2T8oasZ1wzhN2qjAk1N9VeVwM9dMVwlbNw==","signatures":[{"sig":"MEUCIBrqRWQ6izcAG4DoL5TlTbp+olVAQAvaxZW3QCdxwbxRAiEAs/UbUDXL9upgsmydKL7cNvZGXT87AgT5XyqSqS5nnKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255060},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"183ba2cd6cc087474d7299649634c2ae3ce6eea0","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.5_1741454237005_0.22999071097747126","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@archtx/procedures","version":"1.1.6","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.6","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"4d08bc16611c85031adc7ea7965e85602c30aaa2","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.6.tgz","fileCount":45,"integrity":"sha512-qbiHc8Fl4FdkWbHZsi3tKzsbmiCyhfUk2MLUKTFXrOscJeZH31UzqNXls3MD/PxttlxGOjQfpR4a2sjS5TjWYg==","signatures":[{"sig":"MEUCIHFUZNXb4T4qWbwxVtnsyhJJ1GHiJSBm24814fVTMrapAiEAjW+T9XmlI38q1nNRuk9N+cENwgDsrUCgfcvxZ2DGN5U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255074},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"580b3e4cc587443b8a801ac5f6b35b984356602d","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.6_1741481145864_0.9848889258967284","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@archtx/procedures","version":"1.1.7","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.7","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"6a44dc24bd6bdb570445ce2af8a9ddf8d0c12d78","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.7.tgz","fileCount":45,"integrity":"sha512-OKGqY221EhowlA4d4CFZnFx03Hk7ocWwgfedcQbb6NQiJK2nE1OR2hkCxBVYqc/mrX+5ZSf0zPeiSD90PQAgWA==","signatures":[{"sig":"MEYCIQDsVpj1ZUim/JxTMS/yiQQDAkQOzyivux/KA91wgD0TmwIhALNJOkkS4lp++ALZoXn3PwXikILJlg0SpG2UlEHCbctJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255074},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"00ef24d580c3461f1843e5794ba57c9e6a0643c4","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.7_1741481479403_0.8476048376062606","host":"s3://npm-registry-packages-npm-production"}},"1.1.8":{"name":"@archtx/procedures","version":"1.1.8","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.8","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"8144ee5373a8ae88ad6dddff27d2d9fea66154fb","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.8.tgz","fileCount":58,"integrity":"sha512-eyZYTqskzh+edufUH7cahEFq+2+haJ0MxHk982ZxYhyFvDlTs1BdbXkHJyB9kyKKwPklfSVhescHcclcSiMErw==","signatures":[{"sig":"MEUCIGmHVasUAidaoG0yExmGHH6/L1qJNT4j1CMQJT05piUVAiEAl/OEM/Pq3GZN3eYCO67wufmXE+TrPhoA8Y1y+mwvjZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287912},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"2f6b9cda69a53bf2468505453294c36222fb45c5","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.8_1741548454677_0.17754693178548098","host":"s3://npm-registry-packages-npm-production"}},"1.1.9":{"name":"@archtx/procedures","version":"1.1.9","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.9","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"aa16d11c0ee57d046769b904601b0b8fdcf446a4","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.9.tgz","fileCount":58,"integrity":"sha512-pywIClrOxFwRF2wetEwmtoQjRbhUFHM9rztK+jlijB18oQJUpBBN8EX+n9FjCb1BswnKBmtFWTzrWyDuugNb9Q==","signatures":[{"sig":"MEQCIAWE1eZPrKS9S0TaQjJDifW6F5S9q/wDHcQzirxWx/8zAiAfAhcujybZcIBtPMuhW3GshH1io5f3WD5yKguIDVKgWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287912},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"ea69267ebf5029bc711926f83d0df9ea9efcedbe","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.9_1741549585035_0.937691884751596","host":"s3://npm-registry-packages-npm-production"}},"1.1.10":{"name":"@archtx/procedures","version":"1.1.10","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.10","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"ee7356b5309822516b0785d071633d28f7b2c8dd","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.10.tgz","fileCount":58,"integrity":"sha512-TCR0KPDZ1RqgxqqEAW5kIFfau8+75DrG2M0lywuuFOOoEuuyYgVjr/ltMCVScVn7AhqC57dY+KrvbHnV/9aAJw==","signatures":[{"sig":"MEUCIDcskOb0gSCVE/Ksq3LR+OuTPRuiXs2ze/4FnFaRIyzlAiEA5GqEaWwDpQM2u90mSXoz/0x9aDqsscLY8oOnIUuHaIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"011104c9f3c06649c8f9b723d01782efc24aab30","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.10_1741549622197_0.6549066105394998","host":"s3://npm-registry-packages-npm-production"}},"1.1.11":{"name":"@archtx/procedures","version":"1.1.11","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.11","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"50ea65ee64961d83f0319c7a5ad722f6d43952a4","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.11.tgz","fileCount":58,"integrity":"sha512-socpNEAdIr+9guPyyGvhHSp5EI/3MTPU/pRBN1x1JorKAjCIUOE6/fdSH0jCUl6YT+h7cmil7IJbaX5V7dZYzQ==","signatures":[{"sig":"MEUCIG8piTgg8DfMESyAHvv+OXOZjzKWO3YI86NUAL3q/z8SAiEAxjOBDRG8a2wRz0TvNhjkOZFUYTSEF8TrkavIKNozcb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"ec650e79f74bdab842b07fa87337087519465a79","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.11_1741641662741_0.7301761907335109","host":"s3://npm-registry-packages-npm-production"}},"1.1.12":{"name":"@archtx/procedures","version":"1.1.12","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.12","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"d011c0bfbb7245b4c3fdd16f572518ae9d177992","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.12.tgz","fileCount":58,"integrity":"sha512-/utbPpBNpEUB5DOc1Es1ae8Is6aUBAlczuFn8Ud+pCISnq54Uhm2yybQEKW2WBBmv49Ob4EjKc1xe7a7gM6ONg==","signatures":[{"sig":"MEUCIHJZTN29g5RsPy/0r5kiQQ/cELKI2Nnq8fgqCMQK6sOMAiEA7wpuEDJKvtGnUYtVcS3S6a/js1KWe9ov+Tjn95d6Crw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"75d9e4f74b370f3a3d8dd55f860735dd91cc8b79","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.12_1741641898811_0.3814783580422749","host":"s3://npm-registry-packages-npm-production"}},"1.1.13":{"name":"@archtx/procedures","version":"1.1.13","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.13","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"616c19bc771853ff417eab730734efd3e12258f5","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.13.tgz","fileCount":58,"integrity":"sha512-9MGwZFU+WeWCS5QaKpqG+lE8Ezu9gcDgDc4k6F+T2DsR7pLpqART/2OZndXmkaRHt2MgtQVK+QuwpK3wmc7nyQ==","signatures":[{"sig":"MEQCIET20sZexekOZ3sBgkrDJpMEdWGhQi1hQcgLF5ywbjUOAiAcRT/30h36ptVnqj07UucEGkRPWDWmMXay4hKIfz7Acw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"a0403e657025f8c70f021fc4fac41ddebe94fda7","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.13_1741730356769_0.8690643935468447","host":"s3://npm-registry-packages-npm-production"}},"1.1.14":{"name":"@archtx/procedures","version":"1.1.14","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.14","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"14f8a4f913769e1909b22e751f3671c00ddbb805","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.14.tgz","fileCount":58,"integrity":"sha512-Wjl1Ki8aEj7kGBd5QU4+dIvJMKDEq2q9fsZXsPsodqsKNAl3EcVHesfmtjPjhA1Uu+pW1jXUrIauIp+r6U/AnA==","signatures":[{"sig":"MEUCIHaltI8O76jwMXlMQRaaAxtZ7t5gCCNo5wTI8x8PvtoUAiEA5VSAvL5i1fkIUTqJBK3xF4gBTMMzH/ftKtNjQJEX++M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"ab60db73463b76d7af500485829af170e815c5dd","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.14_1741731486366_0.7764731168676748","host":"s3://npm-registry-packages-npm-production"}},"1.1.15":{"name":"@archtx/procedures","version":"1.1.15","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.15","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"8d10a7485a0da8e6f9c9fcc4bbfa8c8620c35313","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.15.tgz","fileCount":58,"integrity":"sha512-GFBrwEtWU9HrLoZCm5Tbh8sw/ubFCw7M2o88dyCrjKGL7o6FpVZmvTfhejhSMln9HYmXyzzRlV36YC06h36sTQ==","signatures":[{"sig":"MEUCIQD/wF2SOuFdDMR0gBPuapgVMXpIe9rvAzpoKHRBaco4fQIgP4m9LYC0iiOy2X3w76RBclZQyTTvDJ/YfRdZYZn+zoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"35819618fab4aceb82ed3bba384e99d54cb7f818","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.15_1741731668993_0.9371451297238027","host":"s3://npm-registry-packages-npm-production"}},"1.1.16":{"name":"@archtx/procedures","version":"1.1.16","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.16","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"7ba75933c4a291f2bdb5feef29c84c538e15dc3a","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.16.tgz","fileCount":58,"integrity":"sha512-gZj+CeeSRseinJa+FG9DMtrOCojGYXd4imlLuffFmUBasWMqdqlm+bH2XFgZkWUKCZgW1ND211/Q4/jnPBewtA==","signatures":[{"sig":"MEQCID01sXVKDdZXXgMNBCNT2FIk2qKDjBZNmUfjRwQGH2H2AiA6yAI3VqtLuCvoesxOzkKmWYcCHhmauJM3IuG24WrcwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"fd1e25c11cf78f9b83c8b08cb0012bca10dfa231","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.16_1741732573145_0.8019723640428926","host":"s3://npm-registry-packages-npm-production"}},"1.1.17":{"name":"@archtx/procedures","version":"1.1.17","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.17","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"9fa235eca019dbd828922b10a09940aff9e94f0a","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.17.tgz","fileCount":58,"integrity":"sha512-gYyfxq9j2MMB3HZNN1G8ap5z+FQG1HlkWrzRiY6QVaoasD+DKLbMCm06BwQAQR4KGpr6hhLbIGpqXIQ7WwxtXg==","signatures":[{"sig":"MEUCIQDJFeHMbyOsNfZpxmlHr/M31fZjTPOZc1Y6De485GQJNAIgMR9/LpsEZRCdKLa882Vy8WupkiPn3Z0Aeua79S4UxTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"f32b5331f7e04953e588867b728a7dfcdce75e26","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.17_1742184586882_0.4280026063222029","host":"s3://npm-registry-packages-npm-production"}},"1.1.18":{"name":"@archtx/procedures","version":"1.1.18","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@1.1.18","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"9737a3aeed87f03a0bc71dfc5742babf96a338fb","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-1.1.18.tgz","fileCount":58,"integrity":"sha512-iHuhao5gzSfoGJA6yAKKTVy6UpGBDW48YXijiljvqN1bQdE56WETAkCfDADlYW+AFh0OyHkfEVQIOZTybYPL3g==","signatures":[{"sig":"MEQCIFOnM7BAVfomPzQMMVIfbdt7k0jW5GCSQWDlvJMD8Ry6AiBR4dbTJ+jfqhHdQwtDA19VtJt1BycTuXd/QH5pXQPvAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287913},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"e15e7477c6bb2f2f7b300d950eef0d48f002b358","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_1.1.18_1742662092459_0.5083064827096448","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@archtx/procedures","version":"2.0.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"0972b5fad141e469b49c80da91ae21508f3f2097","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.0.tgz","fileCount":58,"integrity":"sha512-dFVvY86hN3yO9/WBWHgplW6o2KqFjqYFdz0K9/vFjGkAczdmkbvVNrM22W/9wY+ZbDqzFKzM5T4wkzDktjjabA==","signatures":[{"sig":"MEYCIQDvEBe0qlg7FEjVxjKpreeUh1fLuCVaylnfR+wTb0BQiwIhAOSf/Ofd8iL8Lq4rMM7VlHQOp+9Rc5JvG7GkEHPtK0J/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"123a9ea2fd0e86caf332b214c0a85fcfd0e78428","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.0_1742909749498_0.6214942516632713","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@archtx/procedures","version":"2.0.1","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.1","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"2857d6a4bf5c8da77e80d920b4b7d10b566a5737","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.1.tgz","fileCount":58,"integrity":"sha512-ObKofwcgGYWphxZHfkOqOa7pwq93Wdtf7fc52L8SOtoGTRUght3oNn/RF6SLE7r5dm3SbnK6+BJ1opvhbbUqHA==","signatures":[{"sig":"MEUCIGkmeGtAAdyVPYeVpwVl0EGfAPB0xmBEudQ7i2WuKV54AiEAyMfkTaAO4cpGuMFhup/XzmyCjz9q97/SfNknXTtZyC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"592e534c48dd7e86455e0fe097eb78fc37b81ae6","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.1_1742909950136_0.47686050122458434","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@archtx/procedures","version":"2.0.2","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.2","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"bbc3548533a6ca0f6aeccc0554bf76fdc9831ef5","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.2.tgz","fileCount":58,"integrity":"sha512-Fsz54knusFaaXa9T8Sq8O+S5D4ZIcokKFNDgE/SQo4AUJudWE/aqQMHiqJ9QF9Qr4JL+8gbnD+UcM9UVxgmkfQ==","signatures":[{"sig":"MEQCIC5gKLv26PKusrG2RqQx9CIstoD+x4w8XfTmIvN1Y4cJAiAQ5o2MlSGhVWd/JOsCdpKLadNxBhNU0n9gq+cEKaK1vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"32cf09c3e971ae2bf44ed8e20aa5e64dfb97e93e","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.2_1742910362627_0.27291616879346003","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@archtx/procedures","version":"2.0.3","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.3","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"bfff45c3f272598dc646a0333d02f99b632f34ef","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.3.tgz","fileCount":58,"integrity":"sha512-DUEyQkmh3Ca4v+/THaH6NBofeT5ePQfskDo9t6YLXGWcSXiiXKGSOYtKhc3P0EB6jbu2fmhd4d27btAQghGClw==","signatures":[{"sig":"MEQCIDdeEOfZyJab4RYE/FVchOZ/xlkqFgZm47Ss54BrdYOGAiASCWjXrLgp9062G2jLQ4SQCl2+YH2BLb163yUiUpSlAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"df0742f1ca08b1185a6a41412587a6559a8e3032","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.3_1742958831247_0.06226398270962563","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@archtx/procedures","version":"2.0.4","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.4","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"dc089c6c6e23fc59210a209fc87af19d101492f7","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.4.tgz","fileCount":58,"integrity":"sha512-N86x1BzGqMjJsizyo5+ZRxXZyBinLXQYaSwLNUoxQqBvXp1HJGUTBkbo8bBG7vD+OTUeYln/HXOZYxl1nNnsWA==","signatures":[{"sig":"MEQCIFcw+ylknoof6l6KvZ9hnDkk7D9ShpIkUj6bkfyESBL3AiBr4dwVM2qM46KZEhJ5/oUCHQlGloKdaWAfrfHDwKz0pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"45059ef6923085cb5615ebd800e4e826566ad96c","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.4_1743353884909_0.17206016203034857","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@archtx/procedures","version":"2.0.5","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.5","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"40b96279dd65ffde2614a0c0b359689a39a5669d","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.5.tgz","fileCount":58,"integrity":"sha512-KXuzp3wCWwjVyK86p6qnBcKVZ95iH/o4vwtTbW68wbM2BBfwbO4YAeuevLzfv9CMic8AB4ARR5EMtL/TYtE6fw==","signatures":[{"sig":"MEUCIFoD1wjy2Iee8jfro8mdWc52R5G7Zb04T+KhHVoi6+jaAiEAhBIOVRByeTQO6/KrIsyK+7qC8PxMsVMtODCWobU34b8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"4ed75d2955b2759d5c24cb7c3b9be5a13cf5c180","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.5_1743354416336_0.49961602537157934","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@archtx/procedures","version":"2.0.6","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.6","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"d4229413bfe4dcc73fdfb82ad746fea2b658f91a","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.6.tgz","fileCount":58,"integrity":"sha512-bnDrracE9e0fUpINKzI1n1yxnz0DboQeVVy1p8wte/S70V6ywnsxJngxM2V2nfMSG4+bFOBeMGLUGLKxdl8/1Q==","signatures":[{"sig":"MEYCIQCQyJ8mYjEAi7L8wbq11kRDzzi6GnXwENr1zin488hmigIhAK49+aFK90hkxDtX+Fe4lpcJKBFqyj8bxU/TeP4gGn+2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"bf4a1f86fc93da6126a3b2f7e49736975c76a0d6","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.6_1743370144322_0.9959454060641986","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@archtx/procedures","version":"2.0.7","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@2.0.7","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"37011e9618fceb64ddf96de9548b009f4db58876","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-2.0.7.tgz","fileCount":58,"integrity":"sha512-ahDW4/3QVse7DA/HZVjzFhfFKtkBEmN6spnmhXPMXDOBUovFaIRMKYCaz1GGG/Qbf1njE9mqnVs5mM/U4d6z+g==","signatures":[{"sig":"MEQCIAbgJUpSqMh5bL+ehZloaRXQ0XtmWCqtQ/6TY+doj950AiBmLmxma69UeW46GWQKK/mcW68GqQExKpxK8b8o5pL3Jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":287144},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"513a76504e903f33500ad9fd6be042a8f1f01707","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^2.1.4","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.13","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.13"},"_npmOperationalInternal":{"tmp":"tmp/procedures_2.0.7_1745350366735_0.18249396395086848","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@archtx/procedures","version":"3.0.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@3.0.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"51a4af60159e15d0729c04fce4cb8449e27e735f","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-3.0.0.tgz","fileCount":58,"integrity":"sha512-sYOcng7rz9miIoU4NMzc3oPgblm4CT4fS4SkdnM8yOhWT/BPk0d92lkYp5xzZAjoa/Rbsy5CaLj9OYCv4Mlvag==","signatures":[{"sig":"MEUCIQDG5cOlpVFdf55WQmJmsI6ahf0tYOM8Ai3/G+qz8cqSsAIgA27Erx83DrnOhSy1spUMePaOMXrDUr6zEBBWfkBekhI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284550},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"326a15f6510b84725ccb0096c40019889fa5ad61","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.28","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.28"},"_npmOperationalInternal":{"tmp":"tmp/procedures_3.0.0_1747938929240_0.6320080531917098","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@archtx/procedures","version":"4.0.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@4.0.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"dfca6907a5ef2e754231e8b548b3b37f85b87132","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-4.0.0.tgz","fileCount":58,"integrity":"sha512-AdGAsT1ood5RvnqjgrT2gp+K22HBRwqdVo9vaAUM00ZhknUJ0leyzgpd/F9kh1BdctD35a5cyEc8TCwIRom4MA==","signatures":[{"sig":"MEUCIQCTk3QpyzNX38CKRXs3S5wiGHbvP12TK9mNxo4Ik8uWBAIgBxKc1V1KlKIxqqJbzZtS80gYdW79Yn944Mivx6PwzSI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284550},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"51203c10231dc78cee2a868ee90fab960c598b20","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.28","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.28"},"_npmOperationalInternal":{"tmp":"tmp/procedures_4.0.0_1747956046914_0.06436934559003937","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@archtx/procedures","version":"4.0.1","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@4.0.1","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"912392a7135f8f60a51b7bcfc6ed971d25eefc60","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-4.0.1.tgz","fileCount":58,"integrity":"sha512-0RGSI0bj48I7RUV7fL/uM9UzowJBNRkGMFD4+O2fC6XnY2vtTzPFuBmGUO3bgZWXJXDMAR3ojFiI2RzJnEwE+w==","signatures":[{"sig":"MEUCIBkVY/l6ebr19Zu1kDmVBDiERt2ye8CPLUnFuQctwCM2AiEAxlbOt+MyZlU7P6rrX88EcT2+YzrBtih4jqmJvtdgHm0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284550},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"94550a1b149abd0366fee24ddebee502f5a1e7c4","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"10.8.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"20.18.2","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.28","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.28"},"_npmOperationalInternal":{"tmp":"tmp/procedures_4.0.1_1747964692723_0.03277567901217315","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@archtx/procedures","version":"4.1.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@4.1.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"9bd773d1bb499f1ab016e49d63139ae70c7cee61","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-4.1.0.tgz","fileCount":58,"integrity":"sha512-UztYOjrbXAt3K7Gfea1ETgPAAWgpfBnbrsQY1tck3xIvCtkFgO1vKwUMOPCkwHBmlK5QOpmsod2gWnF3qaG/Hw==","signatures":[{"sig":"MEUCIG3TiRoOTdGleKRZUCXj9pkxTGnMze2ZiT9DETAi88QbAiEA9AvQJ1JQtQtfMiph4LW/7LPMO5ofTLcAnJH/U1gsU/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285265},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"84223ab155e598772cff11334474e13afe9405ed","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"11.5.1","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"24.5.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","suretype":"^3.3.1","@types/jest":"^29.5.11","@sinclair/typebox":"^0.34.28","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"suretype":"^3.3.1","@sinclair/typebox":"^0.34.28"},"_npmOperationalInternal":{"tmp":"tmp/procedures_4.1.0_1755750736538_0.7127444432472929","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@archtx/procedures","version":"5.0.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@5.0.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"1d02ab734da9e799fcca968cf48fa76116f4f5d1","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-5.0.0.tgz","fileCount":58,"integrity":"sha512-2Gnu+WwslDq8Fte/sjSSyQVhS28hrpKpf3G5qvcXvZi8275whZxgCGyowzjTU6gnMvCgeq01RatqG53ZabsI3A==","signatures":[{"sig":"MEUCIHe32Na/Y3DIEaItFrcW4SVmIkWFx2VcyO7ZqrXwiXVKAiEAwLf6CrO8fyxX8pwsJe12UVk0dyc8F2QZX4vZv3Y4G14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308318},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"cc45456be0780b24fd5167cae901d109c60a3842","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"11.6.0","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"24.9.0","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","typebox":"^1.0.30","suretype":"^3.3.1","@types/jest":"^29.5.11","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"typebox":"^1.0.30","suretype":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/procedures_5.0.0_1760044594369_0.652094190315528","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@archtx/procedures","version":"6.0.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@6.0.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"ef6f6d96721c56cde2e2c9cefa89848728e513f4","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-6.0.0.tgz","fileCount":58,"integrity":"sha512-/7XsUvn3/zJdgR7p7y2ykFo2z12Jz+bbrmVeZUfhzPpBJzVRWVANm0F8cpuVtTE/KgHMeVaW7HBMpV+zzhF33Q==","signatures":[{"sig":"MEQCIDMfN7icrIX+dzBBzntCTRtdXyHybZQonTd1djgEpEpnAiB2NMrD7xoq5XOHUPYlIsNGnQv6VxM3yqoYA4yspfkw2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343103},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"f9e2657abd4c3ba4fed713e2672789ada19c031b","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"11.6.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.56.0","vitest":"^3.0.8","typebox":"^1.0.30","suretype":"^3.3.1","@types/jest":"^29.5.11","@typescript-eslint/parser":"^5.48.1","@typescript-eslint/eslint-plugin":"^5.48.1"},"peerDependencies":{"typebox":"^1.0.30","suretype":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/procedures_6.0.0_1767996650458_0.46564517595525934","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@archtx/procedures","version":"6.1.0","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@6.1.0","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"3acb9e9da428490d303544730ccbdfab6f704d72","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-6.1.0.tgz","fileCount":58,"integrity":"sha512-Fa+EnYChThv33a/hld6RTgrKKlUdayE/GOqJwvhHc7+8wG6st5j9BFdEbtKBBX5aXu2nkUYrzndpOIiVmH92eg==","signatures":[{"sig":"MEUCIQCmsWT277ZvCbfhT3+0KDY2ABBCVpsPw4gvUiUcRGpf9AIgaV7E2c7rKWRaatR4Bl05YZU75Xv+u7xH7IaHIqUgdN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345011},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{"default":{"types":"./dist/exports.d.ts","import":"./dist/exports.js","require":"./dist/exports.js"}},"gitHead":"20007fefd3f4fde122dc168314549c7a15c8c008","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"11.6.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^3.2.4","typebox":"^1.0.77","suretype":"^3.3.1","@eslint/js":"^9.17.0","@types/jest":"^29.5.14","typescript-eslint":"^8.53.0"},"peerDependencies":{"typebox":"^1.0.30","suretype":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/procedures_6.1.0_1768268438661_0.9323986985289314","host":"s3://npm-registry-packages-npm-production"}},"6.1.1":{"name":"@archtx/procedures","version":"6.1.1","author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","_id":"@archtx/procedures@6.1.1","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"dist":{"shasum":"7ffd979efd279bba59953792dfd0b9a700ba8663","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-6.1.1.tgz","fileCount":58,"integrity":"sha512-tyGDenz7r++qzXHkhsDGTdW7nobA+B3lHtBNY4SHKMX9K77D9oAdRtFht/x15hpseu2nHcEGBE63GwvXdrFNbw==","signatures":[{"sig":"MEYCIQDiC4mkiarrSqOAMqXYRtvS+Kl5TdAJIKvj8LK+TSfbJwIhAJl7DtMSlErirdpun5BXWUVVqrwOMVg2OyjswJcIVGWC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":337667},"main":"dist/exports.js","type":"module","types":"dist/exports.d.ts","exports":{".":{"types":"./dist/exports.d.ts","import":"./dist/exports.js"},"./package.json":"./package.json"},"gitHead":"74541405230f25f653d057b3fda1a284bd992ace","scripts":{"lint":"npx eslint src/ --quiet","test":"vitest run","build":"tsc"},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"_npmVersion":"11.6.2","description":"Procedure generator for @archtx","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.17.0","vitest":"^3.2.4","typebox":"^1.0.77","suretype":"^3.3.1","@eslint/js":"^9.17.0","@types/jest":"^29.5.14","typescript-eslint":"^8.53.0"},"peerDependencies":{"typebox":"^1.0.30","suretype":"^3.3.1"},"_npmOperationalInternal":{"tmp":"tmp/procedures_6.1.1_1768500053921_0.8763411575401296","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"@archtx/procedures","version":"6.2.0","description":"Procedure generator for @archtx","main":"dist/exports.js","types":"dist/exports.d.ts","type":"module","exports":{".":{"types":"./dist/exports.d.ts","import":"./dist/exports.js"},"./package.json":"./package.json"},"scripts":{"build":"tsc","lint":"npx eslint src/ --quiet","test":"vitest run"},"author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","dependencies":{"ajv":"^8.17.1","ajv-formats":"^3.0.1"},"peerDependencies":{"typebox":"^1.0.30","suretype":"^3.3.1"},"devDependencies":{"@eslint/js":"^9.17.0","@types/jest":"^29.5.14","eslint":"^9.17.0","suretype":"^3.3.1","typebox":"^1.0.77","typescript-eslint":"^8.53.0","vitest":"^3.2.4"},"gitHead":"433c6aed16c1c617574d38316ca437def0d30774","_id":"@archtx/procedures@6.2.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Wks8zO4X45eVULEJQQZH3zy/O3/uVyrd9wGfKOgJmPYeXEbl0DYUoxGOr5kAFf0YkuTga11BGISV57A+OaIUmg==","shasum":"7dc9d436f06efc048c74e8ce2aa86ff074872de9","tarball":"https://registry.npmjs.org/@archtx/procedures/-/procedures-6.2.0.tgz","fileCount":58,"unpackedSize":337667,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEeBdmaR4YP1mLZi11GTIcYTfcfLLE9+li3WtkuuHd37AiEA+lX7+9VYmX1gBTNG1tNAYD17qlEZkvn5ZwfbjrdkYy8="}]},"_npmUser":{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"},"directories":{},"maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/procedures_6.2.0_1769039744079_0.010731295487269144"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-21T23:32:40.382Z","modified":"2026-01-21T23:55:44.408Z","1.0.1":"2025-01-21T23:32:40.796Z","1.1.0":"2025-01-23T05:24:28.684Z","1.1.1":"2025-01-24T19:58:06.200Z","1.1.2":"2025-01-27T18:59:17.589Z","1.1.3":"2025-01-28T02:09:24.723Z","1.1.4":"2025-02-26T19:45:31.383Z","1.1.5":"2025-03-08T17:17:17.255Z","1.1.6":"2025-03-09T00:45:46.064Z","1.1.7":"2025-03-09T00:51:19.612Z","1.1.8":"2025-03-09T19:27:34.851Z","1.1.9":"2025-03-09T19:46:25.225Z","1.1.10":"2025-03-09T19:47:02.378Z","1.1.11":"2025-03-10T21:21:02.957Z","1.1.12":"2025-03-10T21:24:59.022Z","1.1.13":"2025-03-11T21:59:16.989Z","1.1.14":"2025-03-11T22:18:06.540Z","1.1.15":"2025-03-11T22:21:09.174Z","1.1.16":"2025-03-11T22:36:13.378Z","1.1.17":"2025-03-17T04:09:47.099Z","1.1.18":"2025-03-22T16:48:12.655Z","2.0.0":"2025-03-25T13:35:49.699Z","2.0.1":"2025-03-25T13:39:10.361Z","2.0.2":"2025-03-25T13:46:02.832Z","2.0.3":"2025-03-26T03:13:51.521Z","2.0.4":"2025-03-30T16:58:05.153Z","2.0.5":"2025-03-30T17:06:56.538Z","2.0.6":"2025-03-30T21:29:04.522Z","2.0.7":"2025-04-22T19:32:46.934Z","3.0.0":"2025-05-22T18:35:29.462Z","4.0.0":"2025-05-22T23:20:47.112Z","4.0.1":"2025-05-23T01:44:52.971Z","4.1.0":"2025-08-21T04:32:16.735Z","5.0.0":"2025-10-09T21:16:34.619Z","6.0.0":"2026-01-09T22:10:50.616Z","6.1.0":"2026-01-13T01:40:38.840Z","6.1.1":"2026-01-15T18:00:54.092Z","6.2.0":"2026-01-21T23:55:44.263Z"},"author":{"name":"coryrobinson42@gmail.com"},"license":"MIT","description":"Procedure generator for @archtx","maintainers":[{"name":"coryrobinson42","email":"coryrobinson42@gmail.com"}],"readme":"# @archtx/procedures\n\nA **TypeScript** library for creating type-safe, schema-validated procedure calls (RPCs, API controllers, etc.) with a single function definition.\n\n## Quick Start\n\n```bash\nnpm install @archtx/procedures\n```\n\n```ts\nimport { Procedures } from '@archtx/procedures'\nimport { v } from 'suretype' // or use TypeBox\n\nconst { Create } = Procedures()\n\n// Define a procedure with schema validation\nconst { GetUser, procedure, info } = Create(\n  'GetUser',\n  {\n    description: 'Fetch a user by ID',\n    schema: {\n      args: v.object({ id: v.number().required() }),\n      data: v.object({ name: v.string(), email: v.string() }),\n    },\n  },\n  async (ctx, args) => {\n    // args is typed as { id: number }\n    return { name: 'John', email: 'john@example.com' }\n  },\n)\n\n// Call the procedure directly\nconst user = await GetUser({}, { id: 1 })\n```\n\n## Features\n\n- Single-function procedure definitions with `Create()`\n- Type-safe context, arguments, and return values\n- Built-in schema validation (Suretype or TypeBox)\n- Automatic JSON Schema generation for documentation\n- Pre-handler hooks for authentication/authorization\n- Typed error handling with HTTP-style status codes\n- Framework-agnostic registration callbacks\n\n---\n\n## Core Concepts\n\n### The Procedures Factory\n\n`Procedures()` creates a scoped procedure factory with shared configuration:\n\n```ts\nconst { Create, getProcedures } = Procedures({\n  onCreate: (registration) => {\n    // Called when each procedure is created\n    // Use this to register with your router/framework\n  },\n})\n```\n\n### Create Function Signature\n\n```ts\nCreate(\n  name: string,           // Unique procedure name\n  config: ProcedureConfig, // Schema, hooks, description, extended config\n  handler: HandlerFunction // Async function that executes the procedure\n)\n```\n\nReturns an object with:\n- **`[name]`**: Handler function (dynamic key matching the procedure name)\n- **`procedure`**: Same handler function (generic reference)\n- **`info`**: Metadata object with schema, description, and config\n\n---\n\n## Configuration Options\n\n### Custom Context Type\n\nDefine a context type that will be passed to all handlers:\n\n```ts\ninterface AppContext {\n  authToken: string\n  requestId: string\n}\n\nconst { Create } = Procedures<AppContext>()\n\nCreate('MyProcedure', {}, async (ctx, args) => {\n  // ctx.authToken and ctx.requestId are typed\n  return ctx.authToken\n})\n```\n\n### Extended Config Type\n\nAdd custom configuration properties to all procedures:\n\n```ts\ninterface ApiConfig {\n  route: string\n  method: 'GET' | 'POST' | 'PUT' | 'DELETE'\n  rateLimit?: number\n}\n\nconst { Create } = Procedures<unknown, ApiConfig>({\n  onCreate: ({ name, config }) => {\n    // config.route and config.method are available\n    router[config.method.toLowerCase()](config.route, config.handler)\n  },\n})\n\nconst { info } = Create(\n  'ListUsers',\n  {\n    route: '/api/users', // type-checked & required by ApiConfig\n    method: 'GET', // type-checked & required by ApiConfig\n    rateLimit: 100, // type-checked & optional by ApiConfig\n  },\n  async () => []\n)\n\nconsole.log(info.route) // '/api/users'\n```\n\n### Registration Callback (onCreate)\n\nUse `onCreate` to integrate with your framework:\n\n```ts\nconst { Create } = Procedures({\n  onCreate: ({ handler, config, name }) => {\n    // Register with Express\n    app.post(`/rpc/${name}`, async (req, res) => {\n      try {\n        const result = await handler(req.context, req.body)\n        res.json(result)\n      } catch (error) {\n        res.status(error.code).json({ error: error.message })\n      }\n    })\n  },\n})\n```\n\n---\n\n## Schema Validation\n\nSchemas provide type inference and runtime validation. Supports both **Suretype** and **TypeBox**.\n\n### Using Suretype\n\n```ts\nimport { v } from 'suretype'\n\nCreate('CreateUser', {\n  schema: {\n    args: v.object({\n      name: v.string().required(),\n      email: v.string().required(),\n      age: v.number(),\n    }),\n    data: v.object({\n      id: v.string(),\n      name: v.string(),\n    }),\n  },\n}, async (ctx, args) => {\n  // args: { name: string, email: string, age?: number }\n  return { id: 'user-123', name: args.name }\n})\n```\n\n### Using TypeBox\n\n```ts\nimport { Type } from 'typebox'\n\nCreate('CreateUser', {\n  schema: {\n    args: Type.Object({\n      name: Type.String(),\n      email: Type.String(),\n      age: Type.Optional(Type.Number()),\n    }),\n    data: Type.Object({\n      id: Type.String(),\n      name: Type.String(),\n    }),\n  },\n}, async (ctx, args) => {\n  return { id: 'user-123', name: args.name }\n})\n```\n\n### Validation Behavior\n\nWhen arguments fail validation, a `ProcedureValidationError` is thrown automatically:\n\n```ts\ntry {\n  await CreateUser({}, { name: 'John' }) // missing required 'email'\n} catch (error) {\n  // error instanceof ProcedureValidationError\n  // error.code === 422 (VALIDATION_ERROR)\n  // error.errors contains detailed validation errors\n}\n```\n\n### Accessing Generated JSON Schema\n\nThe `info` object contains the generated JSON Schema:\n\n```ts\nconst { info } = Create('GetUser', {\n  schema: {\n    args: v.object({ id: v.number().required() }),\n  },\n}, handler)\n\nconsole.log(info.schema)\n// {\n//   args: { type: 'object', properties: { id: { type: 'number' } }, required: ['id'] },\n//   data: undefined\n// }\n```\n\n---\n\n## Hooks\n\nHooks run before the handler and can:\n- Perform authentication/authorization\n- Inject additional context\n- Throw errors to prevent handler execution\n\n### Basic Hook\n\n```ts\nCreate('ProtectedResource', {\n  hook: async (ctx) => {\n    // Return additional context that merges into handler ctx\n    return { timestamp: Date.now() }\n  },\n}, async (ctx, args) => {\n  // ctx.timestamp is available and typed\n  return ctx.timestamp\n})\n```\n\n### Authentication Hook\n\n```ts\ninterface AuthContext {\n  authToken: string\n}\n\nconst { Create } = Procedures<AuthContext>()\n\nCreate('GetProfile', {\n  hook: async (ctx) => {\n    if (!isValidToken(ctx.authToken)) {\n      throw ctx.error(ProcedureCodes.UNAUTHORIZED, 'Invalid token')\n    }\n\n    const user = await getUserFromToken(ctx.authToken)\n    return { user } // Adds 'user' to handler context\n  },\n}, async (ctx) => {\n  // ctx.user is typed from hook return\n  return { profile: ctx.user.profile }\n})\n```\n\n### Hook Error Handling\n\n- Throwing `ctx.error()` throws a `ProcedureError` with your code/message\n- Throwing any other error wraps it in `ProcedureHookError` (code: 412)\n\n```ts\nhook: async (ctx) => {\n  // This throws ProcedureError with code 401\n  throw ctx.error(401, 'Unauthorized')\n\n  // This would throw ProcedureHookError with code 412\n  throw new Error('Something went wrong')\n}\n```\n\n---\n\n## Error Handling\n\n### Error Types\n\n| Error Class | Code | When Thrown |\n|-------------|------|-------------|\n| `ProcedureError` | Custom | Via `ctx.error()` in hooks/handlers |\n| `ProcedureHookError` | 412 | Unhandled errors in hooks |\n| `ProcedureValidationError` | 422 | Schema validation failures |\n| `ProcedureRegistrationError` | N/A | Invalid schema during registration |\n\n### Using ctx.error()\n\nCreate typed errors with HTTP-style codes:\n\n```ts\nasync (ctx, args) => {\n  const user = await findUser(args.id)\n\n  if (!user) {\n    throw ctx.error(ProcedureCodes.NOT_FOUND, 'User not found', { id: args.id })\n  }\n\n  return user\n}\n```\n\n### ProcedureCodes\n\nHTTP-inspired status codes:\n\n```ts\nimport { ProcedureCodes } from '@archtx/procedures'\n\n// Success codes\nProcedureCodes.OK                // 200\nProcedureCodes.CREATED           // 201\nProcedureCodes.NO_CONTENT        // 204\n\n// Client error codes\nProcedureCodes.BAD_REQUEST       // 400\nProcedureCodes.UNAUTHORIZED      // 401\nProcedureCodes.FORBIDDEN         // 403\nProcedureCodes.NOT_FOUND         // 404\nProcedureCodes.CONFLICT          // 409\nProcedureCodes.VALIDATION_ERROR  // 422\nProcedureCodes.TOO_MANY_REQUESTS // 429\n\n// Server error codes\nProcedureCodes.INTERNAL_ERROR    // 500\nProcedureCodes.HANDLER_ERROR     // 500\nProcedureCodes.NOT_IMPLEMENTED   // 501\nProcedureCodes.SERVICE_UNAVAILABLE // 503\n```\n\n### Catching Errors\n\n```ts\nimport { ProcedureError, ProcedureValidationError } from '@archtx/procedures'\n\ntry {\n  await MyProcedure(ctx, args)\n} catch (error) {\n  if (error instanceof ProcedureValidationError) {\n    // Handle validation errors\n    console.log(error.errors) // Array of validation errors\n  } else if (error instanceof ProcedureError) {\n    // Handle procedure errors\n    console.log(error.code)          // HTTP-style code\n    console.log(error.message)       // Error message\n    console.log(error.procedureName) // 'MyProcedure'\n    console.log(error.meta)          // Optional metadata\n  }\n}\n```\n\n---\n\n## Advanced Usage\n\n### Calling Procedures from Other Procedures\n\nProcedures can call each other while maintaining context isolation:\n\n```ts\nconst { GetUser } = Create('GetUser', {\n  hook: async () => ({ source: 'GetUser' }),\n}, async (ctx, args) => {\n  return { id: args.id, source: ctx.source }\n})\n\nconst { GetUserWithPosts } = Create('GetUserWithPosts', {\n  hook: async () => ({ source: 'GetUserWithPosts' }),\n}, async (ctx, args) => {\n  // Call another procedure - it runs with its own hook context\n  const user = await GetUser(ctx, { id: args.userId })\n  // user.source === 'GetUser' (not 'GetUserWithPosts')\n  return { user, posts: [] }\n})\n```\n\n### Retrieving Registered Procedures\n\nUse `getProcedures()` for introspection, documentation generation, or testing:\n\n```ts\nconst { Create, getProcedures } = Procedures()\n\nCreate('UserCreate', { schema: { args: v.object({ name: v.string() }) } }, handler)\nCreate('UserDelete', { schema: { args: v.object({ id: v.number() }) } }, handler)\n\nconst procedures = getProcedures()\n// Map<string, { name, config, handler }>\n\nprocedures.forEach((proc, name) => {\n  console.log(`${name}: ${JSON.stringify(proc.config.schema)}`)\n})\n```\n\n### Framework Integration Example\n\n```ts\n// procedures.ts\nimport { Procedures } from '@archtx/procedures'\nimport { v } from 'suretype'\n\ninterface RequestContext {\n  userId: string\n  requestId: string\n}\n\ninterface RouteConfig {\n  path: string\n  method: 'GET' | 'POST' | 'PUT' | 'DELETE'\n}\n\nexport const { Create, getProcedures } = Procedures<RequestContext, RouteConfig>({\n  onCreate: ({ handler, config, name }) => {\n    // Register with your router here\n    console.log(`Registered: ${config.method} ${config.path} -> ${name}`)\n  },\n})\n\n// user-procedures.ts\nimport { Create } from './procedures'\n\nexport const { GetUser } = Create(\n  'GetUser',\n  {\n    path: '/api/users/:id',\n    method: 'GET',\n    description: 'Fetch user by ID',\n    schema: {\n      args: v.object({ id: v.string().required() }),\n      data: v.object({ id: v.string(), name: v.string() }),\n    },\n    hook: async (ctx) => {\n      // Verify user has permission\n      if (!hasPermission(ctx.userId, 'read:users')) {\n        throw ctx.error(403, 'Forbidden')\n      }\n      return {}\n    },\n  },\n  async (ctx, args) => {\n    return await db.users.findById(args.id)\n  },\n)\n```\n\n### Validation Access via Config\n\nThe `onCreate` callback receives validation functions for external use:\n\n```ts\nconst { Create } = Procedures({\n  onCreate: ({ config }) => {\n    if (config.validation?.args) {\n      // Pre-validate before calling handler\n      const { errors } = config.validation.args(requestBody)\n      if (errors) {\n        return res.status(422).json({ errors })\n      }\n    }\n  },\n})\n```\n\n---\n\n## API Reference\n\n### Procedures(builder?)\n\nCreates a procedure factory.\n\n**Parameters:**\n- `builder.onCreate?: (registration) => void` - Called when each procedure is created\n\n**Returns:**\n- `Create` - Function to create procedures\n- `getProcedures` - Returns Map of all registered procedures\n\n### Create(name, config, handler)\n\nCreates a procedure.\n\n**Parameters:**\n- `name: string` - Unique procedure identifier\n- `config.description?: string` - Human-readable description\n- `config.schema?.args` - Suretype/TypeBox schema for arguments\n- `config.schema?.data` - Suretype/TypeBox schema for return value\n- `config.hook?: (ctx, args) => Promise<LocalContext>` - Pre-handler hook\n- `handler: (ctx, args) => Promise<Data>` - Procedure implementation\n\n**Returns:**\n- `[name]: handler` - Named handler export\n- `procedure: handler` - Generic handler reference\n- `info` - Procedure metadata with compiled schema\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}