{"_id":"apify-schema-tools","_rev":"30-6aeeb074a9d3165a0c05101d1fcdbe1d","name":"apify-schema-tools","dist-tags":{"rc":"3.0.0-rc.1","latest":"3.2.4"},"versions":{"2.0.1":{"name":"apify-schema-tools","version":"2.0.1","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.0.1","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"c36426f581e7b924ef9673721bc05a07ee6471a5","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.0.1.tgz","fileCount":83,"integrity":"sha512-z4ck4yKbMNm8x3dfgfhxMgIgR0R7wN3/2l1paxDFvNg6Fywh4RrVZxqlspNCbbEYcZHDf1t84+jla26BqrklwA==","signatures":[{"sig":"MEQCIGqCq+4ezAivwEVk7aMtkjFl49IK3SN7t6RWO8qzIoBBAiBxv+k0xiHRalh0C3qRZ4G3PB7BV/+hoGrvp0+ib/fSGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":286444},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"176c6970cee64082eda8ad9176f4b5308e72d3ed","scripts":{"test":"vitest run","build":"tsc","check":"biome check .","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","actor":{"name":"gullmar","type":"user","email":"gullmar@mailbox.org"},"email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"1.9.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.0.1_1751873174606_0.3129129566304203","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"apify-schema-tools","version":"2.0.2","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.0.2","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"0774cd9489430f85bf8f01681044fb75cce5e5fa","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.0.2.tgz","fileCount":83,"integrity":"sha512-BDOvxm+tLVKkkGxdZUrkJk9IMCkL0yDME955CT4p2LKbfSNrh91KTbzwHslwj5q7oIznR2s2HmlwnBjM0MivVA==","signatures":[{"sig":"MEUCIAQekKCJUT2XOGJMbhB6M+hD9h2YOYrlbnPezJv/wYVmAiEAlQKJz1EB/OF0bRdMmptjKhl+lepGVMy9QWaJSWuHKMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288758},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"a4ffc5f404675a611f6a8deb8cfce9f109e5f552","scripts":{"test":"vitest run","build":"tsc","check":"biome check .","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","actor":{"name":"gullmar","type":"user","email":"gullmar@mailbox.org"},"email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"1.9.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.0.2_1751891351724_0.4070391895047494","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"apify-schema-tools","version":"2.0.3","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.0.3","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"2dadc7da16bebbaaaff675fc7f604d289400b81b","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.0.3.tgz","fileCount":83,"integrity":"sha512-Tht/w246lB6ZX5iRb4izmjr4tYIfkDRS7ylcClmxK5LTtfYDzdU6+aU9jy7XaYbVRKkjY8lW+OLb6jl6AYqoEA==","signatures":[{"sig":"MEYCIQC8lRz3gUUgHbP/DIWGNbviWqeOWLCDnn5yQGGn9eyCaQIhAPuGJgC7ajnY5Kh42UgU19ggAS3XkhkULTSbtlucvwJq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290337},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"716d449d1b4b51531d80e7250df0d6620622b4d7","scripts":{"test":"vitest run","build":"tsc","check":"biome check .","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","actor":{"name":"gullmar","type":"user","email":"gullmar@mailbox.org"},"email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"1.9.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.0.3_1751981232981_0.04211236546277064","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"apify-schema-tools","version":"2.0.4","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.0.4","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"d5f2884ca9af3cf869704d77338669f205a1a0b2","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.0.4.tgz","fileCount":83,"integrity":"sha512-sCj6bF3YD+FSBjfPUAQWqapg15b68R2OFJJ/cZ4fjk5bh5EXs8OVgVhp99DwkOi54huVGWOyGI6I58qMufrb5Q==","signatures":[{"sig":"MEUCIQCz4N3vMGyOAIMobovYQjWR0dkE3jk6w8qXVDhnSNRbIgIgKFRtX3XhjKH/ZagEWLKrA3oNqt+CM3Yd9jb7lqHBiuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291572},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"80eb9d3e5e15f8104ae3cebd75b89f38869d5044","scripts":{"test":"vitest run","build":"tsc","check":"biome check .","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","actor":{"name":"gullmar","type":"user","email":"gullmar@mailbox.org"},"email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"1.9.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.0.4_1751981979279_0.7549672751733456","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"apify-schema-tools","version":"2.0.5","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.0.5","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"82db8d6f0a4e99c1c6ba77f2d4728be89e2cde46","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.0.5.tgz","fileCount":83,"integrity":"sha512-w+nBjBgbRIj2yet7z0EI1xbDOuTEtKry3Z1brUppmIYKzizWWVAFueGQjN9TpWeTphb2Inzo96XgkH8YVkoAGQ==","signatures":[{"sig":"MEYCIQCRT9o8gAqGci+9T6h/hyktZY6JhEILVM/fO+MlSd+GlgIhAL5pIn3xwqJQCyJr11bbGNV19UmqJ1FswzZl3LQINxeq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302192},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"04fd3647892ec3d294e89e9b6f8657298abaaee7","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.0","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.0.5_1752494760386_0.4471337356794238","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"apify-schema-tools","version":"2.1.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.1.0","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"33b0ef3ff9f919e6dc88da548d7879746febf619","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.1.0.tgz","fileCount":83,"integrity":"sha512-9m15k4/AXXPcOlMIbyw9kft/uCsOIpM465juv2SuRD2MLY+AW3PUjzIuo6zc8iiOsBZzl1wLN1W8ZKVe6FwWPQ==","signatures":[{"sig":"MEUCIEvAEJvy/kyfjSzho8QAcnnuD7z6sBTOrKQndvvkc+ymAiEA5Kt2wstfiCx5mdVQHzO6HxRsvJQVmZ+Z7/l2lbC6K4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319663},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"c79f3b69716c0e63708672fe91496f495940cd2a","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.0","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.1.0_1753105135061_0.6041727609406147","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"apify-schema-tools","version":"2.1.1","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@2.1.1","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"67e2aa3f45587f4c2dd2466112ccc11c5ff17e79","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-2.1.1.tgz","fileCount":83,"integrity":"sha512-voryUeQKtUuWy47WPxuvdjhMg5ebvRH1PvTRGDwIBpHGV6XMyFdTP9KTMO5AUsRtImxeNNKpn31MX0WJS9ZqBQ==","signatures":[{"sig":"MEQCIAWFX57PHDYjtGaCC6ZBsyeTA8zQMKkPLlAr0rM5555OAiAKnhyTS+TK6Gfv3RArc9KQOwLAlNAZNmTBtzqYpyQKFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321447},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"c4f824a401821046617492c7c729dc4d6dda0016","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.0","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_2.1.1_1753108857677_0.21472182435270826","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.0":{"name":"apify-schema-tools","version":"3.0.0-rc.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.0.0-rc.0","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"c09ce0aac0ee6ed173d68868d5a7ae11a84549b7","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.0.0-rc.0.tgz","fileCount":89,"integrity":"sha512-lc+iUWpvJ7bz6AlMDq10I5TKNw49FbQBPqF7qRi+LdeF0zZ3DbTSDhibh/FMekGwcWs7KrFUgR+WVD6iIk3Siw==","signatures":[{"sig":"MEUCIQCDqqxrfw+41JpXAgBujk6vwdQ7qmbWyBFX4wr+1bHgVgIgUFSzGjojL1SEPYm1rkBSqFPBzFZbUEn47LHSZ6+lg08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375049},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"f885c1753a358bec42aade91fe934bfe2d5ca983","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^3.25.74","ramda":"^0.30.1","argparse":"^2.0.1","@inquirer/prompts":"^7.7.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"apify":"^3.4.2","husky":"^9.1.7","cspell":"^9.0.2","vitest":"^3.2.3","typescript":"^5.8.3","@types/node":"^24.0.1","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.0","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.0.0-rc.0_1753649396713_0.8782634308918127","host":"s3://npm-registry-packages-npm-production"}},"3.0.0-rc.1":{"name":"apify-schema-tools","version":"3.0.0-rc.1","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.0.0-rc.1","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"32c3b89e0a028aa20c181f419a84ef2232dfb89c","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.0.0-rc.1.tgz","fileCount":90,"integrity":"sha512-oE0m2BqaZZ/i1mLYz5tNtGLi35XZMGDAAWSQXjvNp6t4DTQtWuL+n+1HyWtQyQXyGEspFzOwI9QSIFDTjD4kwA==","signatures":[{"sig":"MEYCIQDIuRFKMEuGGhUm5BZ2/xM4PG3k8YLD29XxDc3RmhB0GQIhAJKYcE03vUt9fvp7lKm2v0o/LwwE1ume8hL9TdBVfiTZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378191},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"8ecef987f7812ea047e0d1f6da80a75bba1f1881","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^4.0.10","ramda":"^0.31.3","argparse":"^2.0.1","@inquirer/prompts":"^7.7.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"apify":"^3.4.3","husky":"^9.1.7","cspell":"^9.2.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.1.0","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.2","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.0.0-rc.1_1753702797912_0.842986283545329","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"apify-schema-tools","version":"3.0.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.0.0","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"daa310f352b455be6e61efb5e30fc2d19d8a7560","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.0.0.tgz","fileCount":90,"integrity":"sha512-Q1LwMKgJwf3BUghkxygju7lMpgaJGFx6CJrPu2yvwDw8w0WmbbhWyNNbp7yXhYkQjWOH8NIe2ZlCZotM0DNWDA==","signatures":[{"sig":"MEUCIHd+oZy2YHQHqLea33dGN64quVaQTRgP24w54sHSo+bqAiEAxBgUqorUPXea4kYGNKfyhYVM1J1DXGBe91kFOxHlhDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378186},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"8d5c3f5c04df5fe8374adcc6c44530ad5fd96776","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^4.0.10","ramda":"^0.31.3","argparse":"^2.0.1","@inquirer/prompts":"^7.7.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.4","husky":"^9.1.7","cspell":"^9.2.0","vitest":"^3.2.4","typescript":"^5.8.3","@types/node":"^24.1.0","@types/ramda":"^0.30.2","@biomejs/biome":"^2.1.2","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.0.0_1753727864674_0.807119794755579","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"apify-schema-tools","version":"3.1.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.1.0","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/apify-schema-tools.js"},"dist":{"shasum":"2098d7699a61eb93e7855284e5744313353b8ffe","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.1.0.tgz","fileCount":100,"integrity":"sha512-RILiUJuTNy+zjvITgd+DyW5qtQX82E2/mDC7TzuMOtzTfdZrZNR95AvOtI/kDlEYobepFuuYFvp9x/O+DNg03w==","signatures":[{"sig":"MEYCIQCUNhmKnZOq9pRUZgUtd7wJxSix3scbeT2iKEcCOFAn7wIhALXX8oQj+6Mqj4irzYAtjnZgg6yajCuWBZrCheiI9Rax","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388048},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"e83029560206053e12f2f1b169d7ae373954a0b9","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.2","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"23.6.0","dependencies":{"zod":"^4.1.5","ramda":"^0.31.3","argparse":"^2.0.1","@inquirer/prompts":"^7.8.4"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.4.4","husky":"^9.1.7","cspell":"^9.2.1","vitest":"^3.2.4","typescript":"^5.9.2","@types/node":"^24.3.1","@types/ramda":"^0.31.0","@biomejs/biome":"^2.2.2","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.1.0_1757057555560_0.7101640924460844","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"apify-schema-tools","version":"3.2.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.2.0","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/cli/entrypoint.js"},"dist":{"shasum":"9f1944dae4eb472c71ee0c0b89f5a594acfc6674","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.2.0.tgz","fileCount":192,"integrity":"sha512-CcT4NusNWk17VL/gSWhvxXhhsJb8CbeJVeBaeNH1Hoo2rDIryM5j2xARuZRm259QBRcLM7LsR0OuhjjuqF5FoQ==","signatures":[{"sig":"MEUCIQC3wiK9a/AZF27KU4RAvc5tiNypV+kcjScLJsykGx1QTQIgZOS2AKmCko1U7/TDVkEY/wotoTpcOL9VwV8gQvDeOt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":658946},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"99cc58152d622d62b11b6e96503378fd5bc172fd","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"11.6.1","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"zod":"^4.1.12","ramda":"^0.32.0","argparse":"^2.0.1","@inquirer/prompts":"^7.10.0"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.5.1","husky":"^9.1.7","cspell":"^9.3.0","vitest":"^4.0.8","typescript":"^5.9.3","@types/node":"^24.10.0","@types/ramda":"^0.31.1","@biomejs/biome":"^2.3.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.2.0_1771512548375_0.05236631773840261","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"apify-schema-tools","version":"3.2.1","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.2.1","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/cli/entrypoint.js"},"dist":{"shasum":"1798d5d46722dc5804adf8e65e95d906d6e0b275","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.2.1.tgz","fileCount":192,"integrity":"sha512-018NPhbnuJRgkESxlFCec4BozKRjN3t8ZMfVxF3+qR9Nqk384LwyInChymRhdWKYgbNeedzG9gn9oZehsJy0sA==","signatures":[{"sig":"MEQCIGGl3H9yEj6Nrct3uqkgjM6CVV8RZiqcDDgezdyGtfJbAiAwagylFx/wj2W+EjPH2nEafJot6ZEYHryUxx79ToQqxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":658946},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"db675ad0a4ab46c0188a83910ccac8d886e6bac1","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"11.6.1","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"zod":"^4.1.12","ramda":"^0.32.0","argparse":"^2.0.1","@inquirer/prompts":"^7.10.0"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.5.1","husky":"^9.1.7","cspell":"^9.3.0","vitest":"^4.0.8","typescript":"^5.9.3","@types/node":"^24.10.0","@types/ramda":"^0.31.1","@biomejs/biome":"^2.3.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.2.1_1771588530034_0.5827196525883158","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"apify-schema-tools","version":"3.2.2","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.2.2","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/cli/entrypoint.js"},"dist":{"shasum":"45a3b7d9b5e524418894b84d9fb478aac6a8b033","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.2.2.tgz","fileCount":192,"integrity":"sha512-cuDp272bqKo2WfQ4weQlTZuFcR42NSm9JY3Bzr7OhykDFDsg2xXdvfDfI5+KwL9ygNtKTlqm5VlTsdVhBuqOxA==","signatures":[{"sig":"MEUCIGAdoqV7SsbXzbmjk3I3RfVN7DJxqS6yl4K2oiwRnK+1AiEAlcMgL/lkGOhKGVIPniOYi+e0X+wuq+yW4Fdd5SqfW7c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":659750},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"99380106025b5c7d27231ed773fc4453a42cf522","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","prepare":"husky","check:write":"biome check . --write"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"11.6.1","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"24.10.0","dependencies":{"zod":"^4.1.12","ramda":"^0.32.0","argparse":"^2.0.1","@inquirer/prompts":"^7.10.0"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.5.1","husky":"^9.1.7","cspell":"^9.3.0","vitest":"^4.0.8","typescript":"^5.9.3","@types/node":"^24.10.0","@types/ramda":"^0.31.1","@biomejs/biome":"^2.3.4","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.2.2_1771596953619_0.09091681976721677","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"apify-schema-tools","version":"3.2.3","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"author":{"name":"gullmar"},"license":"Apache-2.0","_id":"apify-schema-tools@3.2.3","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","bin":{"apify-schema-tools":"dist/main.js"},"dist":{"shasum":"08c119ae0f706eaacfd5f27b54bf2a96ac31182c","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.2.3.tgz","fileCount":192,"integrity":"sha512-leEqDBKNQX2lYJlLc1/Bu9y5B7cOHxlh/UcCPErrlZ87UVA2K0EfUd/2ccx7KcHSbTAtQK0NCZnx4AG1qUk7YA==","signatures":[{"sig":"MEQCIGDaJll25sV4mebCgVd9sYZ4JWi2p+o7gTM5V8je0pW+AiBPoxCmEcHwFjab3rqbBEmigA1t76rWXoo0cJyw0oOqhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":659795},"main":"dist/main.js","type":"module","types":"dist/main.d.ts","cspell":{"words":[],"import":[],"version":"0.2","ignorePaths":[],"ignoreWords":[],"dictionaries":["custom-dictionary"],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}]},"gitHead":"e23abc671c7b12043731420a02e90c0b0b25b3e7","scripts":{"test":"vitest run","build":"tsc","check":"biome check . --error-on-warnings","check:write":"biome check . --write","postinstall":"husky"},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"repository":{"url":"git+https://codeberg.org/gullmar/apify-schema-tools.git","type":"git"},"_npmVersion":"10.9.8","description":"Apify schema managing tools.","directories":{},"_nodeVersion":"20.15.0","dependencies":{"zod":"^4.3.6","ramda":"^0.32.0","argparse":"^2.0.1","@inquirer/prompts":"^7.10.1"},"_hasShrinkwrap":false,"devDependencies":{"apify":"^3.7.0","husky":"^9.1.7","cspell":"^9.7.0","vitest":"^4.1.2","typescript":"^5.9.3","@types/node":"^24.12.2","@types/ramda":"^0.31.1","@biomejs/biome":"^2.4.10","@apify/tsconfig":"^0.1.1","@types/argparse":"^2.0.17","@types/minimist":"^1.2.5","@types/json-schema":"^7.0.15"},"_npmOperationalInternal":{"tmp":"tmp/apify-schema-tools_3.2.3_1775807876468_0.5129098844278164","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"apify-schema-tools","version":"3.2.4","description":"Apify schema managing tools.","main":"dist/main.js","types":"dist/main.d.ts","bin":{"apify-schema-tools":"dist/main.js"},"scripts":{"build":"tsc","test":"vitest run","check":"biome check . --error-on-warnings","check:write":"biome check . --write","prepare":"husky || true"},"author":{"name":"gullmar"},"license":"Apache-2.0","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"repository":{"type":"git","url":"git+https://codeberg.org/gullmar/apify-schema-tools.git"},"homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","type":"module","devDependencies":{"@apify/tsconfig":"^0.1.1","@biomejs/biome":"^2.4.10","@types/argparse":"^2.0.17","@types/json-schema":"^7.0.15","@types/minimist":"^1.2.5","@types/node":"^24.12.2","@types/ramda":"^0.31.1","apify":"^3.7.0","cspell":"^9.7.0","husky":"^9.1.7","typescript":"^5.9.3","vitest":"^4.1.2"},"dependencies":{"@inquirer/prompts":"^7.10.1","argparse":"^2.0.1","ramda":"^0.32.0","zod":"^4.3.6"},"cspell":{"version":"0.2","ignorePaths":[],"dictionaryDefinitions":[{"name":"custom-dictionary","path":"./.cspell/custom-dictionary.txt","addWords":true}],"dictionaries":["custom-dictionary"],"words":[],"ignoreWords":[],"import":[]},"gitHead":"23b7d5715f22e981dc10b7cb98df76b92b91d5ad","_id":"apify-schema-tools@3.2.4","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-g+twCz8Gdjo43kBA7vxvoUTUZ5pU6T2EM2tLQB8iJnLj/+YmGF0H8aSBtx5C/NHzE3S75OP//zDgQnc8islMHA==","shasum":"569c60ac66d6b104c964c0add3e598669c917da1","tarball":"https://registry.npmjs.org/apify-schema-tools/-/apify-schema-tools-3.2.4.tgz","fileCount":140,"unpackedSize":415621,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDZvz3V9Aopj/do4aHfGhzBkrSMVxUi2fotadjg3WvDGAiBowvkw6BA/3iDPSHEKzfSn6Dxh0SHuOPK5Xlg7BgmgsQ=="}]},"_npmUser":{"name":"gullmar","email":"gullmar@mailbox.org"},"directories":{},"maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apify-schema-tools_3.2.4_1787130112237_0.2531129677079058"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-23T09:24:51.259Z","modified":"2026-08-19T09:01:52.846Z","0.0.1":"2024-12-23T09:24:51.434Z","1.0.0":"2025-06-06T14:52:51.805Z","1.1.0":"2025-06-06T15:19:02.958Z","1.1.1":"2025-06-06T15:26:11.191Z","1.2.0":"2025-06-10T11:40:15.093Z","1.3.0":"2025-06-10T21:12:53.261Z","2.0.0":"2025-07-06T18:23:44.025Z","2.0.1":"2025-07-07T07:26:14.746Z","2.0.2":"2025-07-07T12:29:11.930Z","2.0.3":"2025-07-08T13:27:13.201Z","2.0.4":"2025-07-08T13:39:39.487Z","2.0.5":"2025-07-14T12:06:00.666Z","2.1.0":"2025-07-21T13:38:55.272Z","2.1.1":"2025-07-21T14:40:57.847Z","3.0.0-rc.0":"2025-07-27T20:49:56.938Z","3.0.0-rc.1":"2025-07-28T11:39:58.126Z","3.0.0":"2025-07-28T18:37:44.870Z","3.1.0":"2025-09-05T07:32:35.745Z","3.2.0":"2026-02-19T14:49:08.556Z","3.2.1":"2026-02-20T11:55:30.208Z","3.2.2":"2026-02-20T14:15:53.764Z","3.2.3":"2026-04-10T07:57:56.621Z","3.2.4":"2026-08-19T09:01:52.448Z"},"author":{"name":"gullmar"},"license":"Apache-2.0","homepage":"https://codeberg.org/gullmar/apify-schema-tools#readme","keywords":["apify","schema","tools","cli","typescript","json-schema","synchronization","validation"],"repository":{"type":"git","url":"git+https://codeberg.org/gullmar/apify-schema-tools.git"},"description":"Apify schema managing tools.","maintainers":[{"name":"gullmar","email":"gullmar@mailbox.org"}],"readme":"# Apify Schema Tools\n\nThis is a tool intended for Apify actors developers.\n\nIt allows generating JSON schemas and TypeScript types, for input and dataset,\nfrom a single source of truth, with a few extra features.\n\nAs a quick example, assume you have a project that looks like this:\n\n```\nmy-project\n├── .actor\n│   ├── actor.json\n│   ├── dataset_schema.json\n│   └── input_schema.json\n└── src-schemas\n    ├── dataset-item.json <-- source file for dataset\n    └── input.json        <-- source file for input\n```\n\nAfter running this script, you will have:\n\n```\nmy-project\n├── .actor\n│   ├── actor.json\n│   ├── dataset_schema.json <-- updated with the definitions from src-schemas\n│   └── input_schema.json   <-- updated with the definitions from src-schemas\n├── src\n│   └── generated\n│       ├── dataset.ts     <-- TypeScript types generated from src-schemas\n│       ├── input-utils.ts <-- utilities to fill input default values\n│       └── input.ts       <-- TypeScript types generated from src-schemas\n└── src-schemas\n    ├── dataset-item.json\n    └── input.json\n```\n\n## Quickstart\n\nThese instructions will allow you to quickly get to a point where you can use\nthe `apify-schema-tools` to generate your schemas and TypeScript types.\n\nLet's assume you are starting from a new project created from an\n[Apify template](https://github.com/apify/actor-templates).\n\n1. Install `apify-schema-tools`:\n\n```sh\nnpm i -D apify-schema-tools\n```\n\n2. Initialize your project with default settings:\n\n```sh\nnpx apify-schema-tools init\n```\n\nThis command will:\n- Create a `src-schemas` folder with `input.json` and `dataset-item.json` files.\n- Create the necessary `.actor` files if they don't exist.\n- Add configuration to your `package.json`.\n- Add a `generate` script to your `package.json`.\n\n3. Generate JSON schemas and TypeScript types from the source schemas:\n\n```sh\nnpx apify-schema-tools sync\n```\n\n4. Now, you will be able to use TypeScript types and utilities in your project:\n\n```ts\nimport { Actor } from 'apify';\n\nimport type { DatasetItem } from './generated/dataset.ts';\nimport type { Input } from './generated/input.ts';\nimport { getInputWithDefaultValues, type InputWithDefaults } from './generated/input-utils.ts';\n\nawait Actor.init();\n\nconst input: InputWithDefaults = getInputWithDefaultValues(await Actor.getInput<Input>());\n\n'...'\n\nawait Actor.pushData<DatasetItem>({\n    tile: '...',\n    url: '...',\n    text: '...',\n    timestamp: '...',\n});\n\nawait Actor.exit();\n```\n\n## Configuration\n\nYou can configure `apify-schema-tools` in two ways:\n\n### Using package.json configuration\n\nThe `init` command automatically adds configuration to your `package.json`. You can also manually add an `apify-schema-tools` section to customize the behavior:\n\n```json\n{\n  \"name\": \"my-actor\",\n  \"version\": \"1.0.0\",\n  \"apify-schema-tools\": {\n    \"input\": [\"input\", \"dataset\"],\n    \"output\": [\"json-schemas\", \"ts-types\"],\n    \"srcInput\": \"src-schemas/input.json\",\n    \"srcDataset\": \"src-schemas/dataset-item.json\",\n    \"outputTSDir\": \"src/generated\",\n    \"includeInputUtils\": true\n  }\n}\n```\n\n### Using command-line arguments\n\nYou can also pass options directly to the `sync` command. You can check which options are available:\n\n```console\n$ npx apify-schema-tools --help\nusage: apify-schema-tools [-h] {init,sync,check} ...\n\nApify Schema Tools - Generate JSON schemas and TypeScript files for Actor input and output dataset.\n\npositional arguments:\n  {init,sync,check}\n    init             Initialize the Apify Schema Tools project with default settings.\n    sync             Generate JSON schemas and TypeScript files from the source schemas.\n    check            Check the schemas for consistency and correctness.\n\noptional arguments:\n  -h, --help         show this help message and exit\n```\n\n```console\n$ npx apify-schema-tools sync --help\nusage: apify-schema-tools sync [-h] [-i [{input,dataset} ...]] [-o [{json-schemas,ts-types} ...]] [--src-input SRC_INPUT] [--src-dataset SRC_DATASET] [--add-input ADD_INPUT] [--add-dataset ADD_DATASET] [--input-schema INPUT_SCHEMA] [--dataset-schema DATASET_SCHEMA] [--output-ts-dir OUTPUT_TS_DIR]\n                               [--deep-merge] [--include-input-utils {true,false}]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -i [{input,dataset} ...], --input [{input,dataset} ...]\n                        specify which sources to use for generation (default: input,dataset)\n  -o [{json-schemas,ts-types} ...], --output [{json-schemas,ts-types} ...]\n                        specify what to generate (default: json-schemas,ts-types)\n  --src-input SRC_INPUT\n                        path to the input schema source file (default: src-schemas/input.json)\n  --src-dataset SRC_DATASET\n                        path to the dataset schema source file (default: src-schemas/dataset-item.json)\n  --add-input ADD_INPUT\n                        path to an additional schema to merge into the input schema (default: undefined)\n  --add-dataset ADD_DATASET\n                        path to an additional schema to merge into the dataset schema (default: undefined)\n  --input-schema INPUT_SCHEMA\n                        the path of the destination input schema file (default: .actor/input_schema.json)\n  --dataset-schema DATASET_SCHEMA\n                        the path of the destination dataset schema file (default: .actor/dataset_schema.json)\n  --output-ts-dir OUTPUT_TS_DIR\n                        path where to save generated TypeScript files (default: src/generated)\n  --deep-merge          whether to deep merge additional schemas into the main schema (default: false)\n  --include-input-utils {true,false}\n                        include input utilities in the generated TypeScript files: 'input' input and 'ts-types' output are required (default: true)\n```\n\n## Setting up your project manually\n\nIf you prefer to set up your project manually instead of using the `init` command, you can follow these steps:\n\n1. Create a `src-schemas` folder:\n\n```sh\nmkdir src-schemas\n```\n\n2. Create the files `input.json` and `dataset-item.json` inside the `src-schemas`. Here is some example content:\n\n```json\n{\n  \"title\": \"Input schema for Web Scraper\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"startUrls\": {\n      \"type\": \"array\",\n      \"title\": \"Start URLs\",\n      \"description\": \"List of URLs to scrape\",\n      \"default\": [],\n      \"editor\": \"requestListSources\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"url\": { \"type\": \"string\" }\n        }\n      }\n    }\n  },\n  \"required\": [\"startUrls\"],\n  \"additionalProperties\": false\n}\n```\n\n```json\n{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"title\": \"Dataset schema for Web Scraper\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"title\": {\n      \"type\": \"string\",\n      \"title\": \"Title\",\n      \"description\": \"Page title\"\n    },\n    \"url\": {\n      \"type\": \"string\",\n      \"title\": \"URL\",\n      \"description\": \"Page URL\"\n    },\n    \"text\": {\n      \"type\": \"string\",\n      \"title\": \"Text content\",\n      \"description\": \"Extracted text\"\n    },\n    \"timestamp\": {\n      \"type\": \"string\",\n      \"title\": \"Timestamp\",\n      \"description\": \"When the data was scraped\"\n    }\n  },\n  \"required\": [\"title\", \"url\"]\n}\n```\n\n3. Create the file `.actor/dataset_schema.json` and enter some empty content:\n\n```json\n{\n    \"actorSpecification\": 1,\n    \"fields\": {},\n    \"views\": {}\n}\n```\n\n4. Link the dataset schema in `.actor/actor.json`:\n\n```json\n{\n    \"actorSpecification\": 1,\n    \"...\": \"...\",\n    \"input\": \"./input_schema.json\",\n    \"storages\": {\n        \"dataset\": \"./dataset_schema.json\"\n    },\n    \"...\": \"...\"\n}\n```\n\n\n5. Generate JSON schemas and TypeScript types from the source schemas:\n\n```sh\nnpx apify-schema-tools sync\n```\n\n## Resolving conflicts\n\nThe `sync` command includes interactive conflict resolution to help you handle schema inconsistencies.\nWhen the tool detects conflicts between your source schemas and existing target schemas,\nit will prompt you to choose which version to keep.\n\n### When conflicts are detected\n\nConflicts occur when there are differences between your source schema files and the schemas that would be generated in the target locations.\nCommon scenarios include:\n\n- The source and the target schema have different title of description.\n- The same property has different title of description in the source and target schemas.\n- Properties that exist in the target schema are missing from the source schema.\n\n### Interactive mode (default behavior)\n\nBy default, when conflicts are detected, the tool will prompt you interactively to resolve each conflict:\n\n```\n⚠️  Field [properties > startUrls > description] in the source schema differs from \nthe target schema. Choose which to keep: (Use arrow keys)\n❯ [source] List of URLs to scrape\n  [target] List of URLs to parse\n```\n\n```\n⚠️  Property \"searchTerm\" was removed from the source schema. What do you want to do? (Use arrow keys)\n❯ Confirm deletion\n  Restore field\n```\n\n### Non-interactive modes\n\nFor automated scripts or CI/CD pipelines, you can use these options:\n\n#### Force mode (`--force`)\n\nAutomatically resolves all conflicts by preferring the source schema:\n\n```sh\nnpx apify-schema-tools sync --force\n```\n\nThis will:\n- Always use values from the source schema when there are conflicts\n- Remove properties that exist in target but not in source\n- Overwrite target schemas without prompting\n\n#### Fail on conflict (`--fail-on-conflict`)\n\nStops execution and exits with an error code when conflicts are detected:\n\n```sh\nnpx apify-schema-tools sync --fail-on-conflict\n```\n\n## Checking if the schemas are in sync with the source schemas\n\nThe `check` command allows you to verify that your generated schemas and TypeScript files are up-to-date with your source schemas.\nThis is particularly useful in CI/CD pipelines to ensure that developers haven't forgotten to run the generation after making changes to the source schemas.\n\n```sh\nnpx apify-schema-tools check\n```\n\nThe `check` command will:\n- Compare the current generated files with what would be generated from the source schemas\n- Exit with code 0 if everything is in sync\n- Exit with code 1 if there are differences, showing you which files are out of sync\n\nYou can add this to your CI pipeline to automatically detect when schemas need to be regenerated:\n\n```json\n{\n  \"scripts\": {\n    \"generate\": \"apify-schema-tools sync\",\n    \"check-schemas\": \"apify-schema-tools check\",\n    \"test\": \"npm run check-schemas && npm run test:unit\"\n  }\n}\n```\n\nThe `check` command accepts the same configuration options as the `sync` command,\neither through `package.json` configuration or command-line arguments,\nensuring it checks the same files that would be generated.\n\n### Ignoring descriptions while checking (`--ignore-descriptions`)\n\nThe `check` command can ignore the `title` and `description` fields in the source and target schemas, and their properties.\nThis allows you to edit your descriptions and change how your Actor will appear on the Apify platform,\nwithout having to run this tool to synchronize the schemas, but still being able to check for semantical correctness:\n\n```sh\nnpx apify-schema-tools check --ignore-descriptions\n```\n\nThe next time someone will try to run the `sync` command,\nthey will be prompted to solve the conflicts in the descriptions.\n\n## Extra features\n\n### Keep only allowed properties in Input schema\n\nAs an example, when `type` is \"array\", the property `items` is forbidden if `editor` is different from \"select\".\n\n### Merge a second schema into the main one\n\nThis feature is useful when working in monorepos.\nIt allows you to define a single common schema across all the actors in the repo,\nand to add or override the tile, the description, and some properties, when necessary.\n\nTo use it, use the parameters `--add-input` and `--add-dataset`, e.g.:\n\n```sh\nnpx apify-schema-tools sync \\\n  --input input,dataset \\\n  --output json-schemas,ts-types \\\n  --src-input ../src-schemas/input.json \\\n  --src-dataset ../src-schemas/dataset-item.json \\\n  --add-input src-schemas/input.json \\\n  --add-dataset src-schemas/dataset-item.json\n```\n\nYou can also define the order of the properties in the merged schema.\nTo do so, add a `position` field to the properties. The script will follow these rules:\n\n- Properties without position or with the same position, are sorted in the same order in which they appear in the source\n  schemas, with the ones in the additional schema after the ones in the base schema.\n- If both properties with and without position exist, the ones without position will appear at the end.\n- The position will be overwritten if a property is overwritten.\n\nAn example:\n\n```jsonc\n# Source input schema\n{\n  \"title\": \"My input schema\",\n  \"description\": \"My input properties\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"a\": { \"type\": \"string\", \"position\": 3 },\n    \"b\": { \"type\": \"string\" }, // will be last, because it has no position\n    \"c\": { \"type\": \"string\", \"position\": 1 }\n  },\n  \"required\": [\"a\"],\n  \"additionalProperties\": false\n}\n```\n\n```jsonc\n# Additional input schema\n{\n  \"description\": \"My input properties, a bit changed\", // will override the description\n  \"type\": \"object\",\n  \"properties\": {\n    \"c\": { \"type\": \"boolean\", \"position\": 5 }, // will override also the position\n    \"d\": { \"type\": \"string\", \"position\": 1 } // will be first\n  },\n  \"required\": [\"c\", \"d\"], // will be merged to the source required parameters\n  \"additionalProperties\": false\n}\n```\n\n```jsonc\n# Final input schema\n{\n  \"title\": \"My input schema\",\n  \"description\": \"My input properties, a bit changed\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"d\": { \"type\": \"string\" },\n    \"a\": { \"type\": \"string\" },\n    \"c\": { \"type\": \"boolean\" },\n    \"b\": { \"type\": \"string\" }\n  },\n  \"required\": [\"a\", \"c\", \"d\"],\n  \"additionalProperties\": false\n}\n```\n\nUse the option `--deep-merge` to merge object properties and array items, instead of overwriting every definition.\n","readmeFilename":"README.md"}