{"_id":"@njdamstra/appwrite-utils-cli","_rev":"27-ea8c1e3c46465bfd6dcded091736839e","name":"@njdamstra/appwrite-utils-cli","dist-tags":{"latest":"1.13.5"},"versions":{"1.8.9":{"name":"@njdamstra/appwrite-utils-cli","version":"1.8.9","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.8.9","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"ce7b0931490f4ec372cacfe868f8218d9198c4aa","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.8.9.tgz","fileCount":392,"integrity":"sha512-G3C9peA3GMBSSL01d9NlBvrBv5VJDw663e6N8/r1gxRopfLtmHOCMOiRKCk8VUkk6o/V/Vqq+sRQT3dlCLXK8A==","signatures":[{"sig":"MEYCIQDM/shH/BCIjXFd6KZGz8a3SqyqdI6UDdl1TNiAQaNmdwIhALJvF7xE5PIccm9ii0868v1G0Q3ApDkH39eeMED5iys+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3859525},"main":"src/main.ts","type":"module","gitHead":"85127019cdbf7f27966d3aaaa8220dd0b730e003","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^20.2.1","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.6.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.8.9_1771449312452_0.4714036339581875","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@njdamstra/appwrite-utils-cli","version":"1.10.0","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.10.0","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"88f4e01006b0881d8b4b409c032909fae6693c9f","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.10.0.tgz","fileCount":274,"integrity":"sha512-MUiGQDQ4Cxfdpd2ZQNvzF0NnSgUWK8AhtmPgTUQ9V6kCVfJEQV/oRN1m8ojG2MymKW1A9wiTe9CNcIIG52MZoA==","signatures":[{"sig":"MEYCIQC0IvbQSx/kgWxXNGA2nhkzdil5kUhZKJQohx0jex+FkQIhANs4R9xPwuJjA0zoln3eIdWEVkRXB/T/IC2CS+z//l08","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2904510},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"9da0af77fa6de2d342767e0dec6ab243539b3543","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^20.2.1","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.0","@njdamstra/appwrite-utils-helpers":"^0.1.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.10.0_1771451047070_0.6863367941254397","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@njdamstra/appwrite-utils-cli","version":"1.10.1","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.10.1","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"d2f2f94cd21bbfe663a919275ae9f6cad732ddc5","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.10.1.tgz","fileCount":274,"integrity":"sha512-7iQLctM7mWV/Kr6R4HEgDdfdOakkh2SgiPix9ISqlT8bNfq4If/oQh0tIAA67LFkOaMDjJPnb6J87Wg6HOM60Q==","signatures":[{"sig":"MEUCIBjNxNgGR3iT4D7g0jqG+o8zoBUadAEAsveFnWn0SA0mAiEAg1Z1k3UrF2bgv2l2EMmavt13eqy6QWfQyd7wETG84/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2942511},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"00bb39a066f1ff10972e73e6823d8fd3df90d696","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.10.1_1772411710197_0.46604453305405236","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.0","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.0","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"4069a2935a9f9db56f20b276b240c3892b7fe387","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.0.tgz","fileCount":283,"integrity":"sha512-tH1o4GjyNp7JCc/t8H8dEzGYYQMSXbqy1cVU4QdUz8Kt7TGsXDVPM4ADM78gg1aISFzI/stTWcfbRBvWKN75Nw==","signatures":[{"sig":"MEYCIQD/E61B4i0UHfWYo12pN+GbLI81RYtc6s93HRrxKwJLEAIhAMd8dXxiyv6zgSVX6crhURVMB/jsuv6JZeFwgiZRV3mq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3039643},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.0_1772420535221_0.15424261175785525","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.1","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.1","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"252f650dbb218f583cd89eca53b4b0ff1c7f8f9c","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.1.tgz","fileCount":283,"integrity":"sha512-KG7ej8Uky2ruMUE2GtYYYdxtBYqQM81QYX8OyWCKPksluNGRXF07Y06oeipv2raCAZtMfTjXMnODZo2hKAhVKg==","signatures":[{"sig":"MEYCIQDNoVMc2nbLSmeTsbpu45YAkxkDlrg3qy0bWBb6x+4QZgIhAKoHL9rzDPdBpIYt+pRd1SUaZxlJ6GbNxu9C/f5tyVWu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3040261},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.1_1772421281333_0.538564730852112","host":"s3://npm-registry-packages-npm-production"}},"1.11.2":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.2","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.2","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"4cce5bd0b645aee765f3de43505794e842dea841","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.2.tgz","fileCount":283,"integrity":"sha512-qNxuZ/Op1v2JdLjS6XuwXd3U73SUhzwGLcovXukePPB4HbqHlyiHY5qvZGnNci8EVaej2KCPAgFb6lqsCQFZJQ==","signatures":[{"sig":"MEUCIQD9TvOZLGPAtVshbU9Xlxz5u7Pci4THdRjuOeFxDwom/QIgZeUSjPMqv8ZumZYU3wFyi9RVkV65OsGuu5HkUb+aFnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3043376},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.2_1772421837739_0.5835404671650952","host":"s3://npm-registry-packages-npm-production"}},"1.11.3":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.3","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.3","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"9d2e2f3806afc8d769fbfc68ad8f80a82c4ccd4a","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.3.tgz","fileCount":283,"integrity":"sha512-bq3Gxt7BTnjTaCOqUkHhB6375lurpS/3eD0Gnfn1BdtpL0PrGx8aZyrUEySp06Ny2K3hWgDgHzgBDkqSC889jQ==","signatures":[{"sig":"MEUCIQCOT4i+2YQSLSk1/DUSR3yDzcvLFqvb5aKYvR6ZnRzWvgIgYFVmCFHCn8QiwF+EzKvvgd7/qx/zDt+ynehje08ov/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3046162},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.3_1772422875239_0.03363328725213588","host":"s3://npm-registry-packages-npm-production"}},"1.11.4":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.4","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.4","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"29382fb2effcc0c4a40d665c30c979b7d2791c21","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.4.tgz","fileCount":283,"integrity":"sha512-Mcbsa7rMTRnu0IDV1dEOn0b5HRiSeVfaxyseICKm17I7rEWJJo8P8EbRUyciH9kiV40e1qTW1FxZQkYAS+JnZg==","signatures":[{"sig":"MEYCIQDvOvp3xkFuiTfRiwdIpETh7zdYWnPg6UUsD6gQwgpGjAIhAIV3kkxU0s4gCDnEbh34cMIIfJ4YFv8IhC/DHMVQTqYv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3045672},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.4_1772425018000_0.07450468792358511","host":"s3://npm-registry-packages-npm-production"}},"1.11.5":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.5","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.5","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"fa0f37caf03b93b011fc6d849b0cf19952c999a6","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.5.tgz","fileCount":283,"integrity":"sha512-3blBmLUR4OCwWsXeEyR/l8fJg32ykR929ROm2+NV4g2tIxQiWGeMY76NyMPFbNb1ccbJcWvsbbruYxwZN5YelQ==","signatures":[{"sig":"MEQCIAqOX0lFqly0SDj4IfUacvaQuJJCJDUX2SWpE7kbNhjwAiA7Jdjoztug18SbJuECMkHNrE+pY0TX2+r6I9t+2wawqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3046792},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3d09953a22062c0ce471b9e8c449356ffda84716","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.5_1772428229612_0.20986745303198684","host":"s3://npm-registry-packages-npm-production"}},"1.11.6":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.6","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.6","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"8796cf10b759b9d4ca51a2b57156fb88af4d0553","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.6.tgz","fileCount":283,"integrity":"sha512-V0wzZcrPKuQSIG0Jc39JHZnRzEEOldgkRXxnFXom+07yAxTsR6o33jOOyzba496DeozseJ2e067eoPrc1FSmtA==","signatures":[{"sig":"MEUCIQDieCILFxY1/GCRpUoHdkyC06HIBsvZS5Tbtbtdzx//8wIgeeYpvLXrLEGB5jHsAHmZQG3R4DLvKifxfn5691a6pP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3057705},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"8562a6ad2fd3d0253e188cac8f05171117020c8c","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.6_1772429808930_0.6275034591094144","host":"s3://npm-registry-packages-npm-production"}},"1.11.7":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.7","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.7","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"8373c3b6d9c99b82e98402aae39a0fc51293675d","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.7.tgz","fileCount":283,"integrity":"sha512-TcYdLEjcZUgY4pSbCRM02coRdHBhMIJE2ss73uashO2ZJNxkv22IkQiYa/kD6AdjLuYP0wOhNXTIU0gZCtATLA==","signatures":[{"sig":"MEUCIAFXchdxpPb61OqwH5/1coetUzCNTg2QyFBD4StIMMVJAiEAgdfrmJNG9d+eAYZWonhps7lbx8FQMoJ/7Zcwi9Xrvfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3058842},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"3571be51df618b29766e88aa57d3531f769e199d","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.7_1772430548157_0.7047003872159046","host":"s3://npm-registry-packages-npm-production"}},"1.11.8":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.8","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.8","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"59a6eaaeaed587f9dcb15960b60f921f4a5c934c","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.8.tgz","fileCount":283,"integrity":"sha512-JL+snILSHmnHri6/QobPuZgmpCrW5zkOielPMyJ1Yvk5FafgqtDJ69KddJQyXE3lYBB4E+eycCvgwzMeM/QncA==","signatures":[{"sig":"MEQCIBZzY5Unj7laoz/ubKAngO7Pbi1xYVlQcsmJs+Uci0/rAiBU1l6PDJPUinmikcDzzTpGPzrrFXXtKcQ89aCcQ1nXYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3061438},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"10e5f92d8bff1df1fbd97fdca575c8c9abf0edde","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.2"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.8_1772430944670_0.3185279770647067","host":"s3://npm-registry-packages-npm-production"}},"1.11.9":{"name":"@njdamstra/appwrite-utils-cli","version":"1.11.9","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.11.9","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"cd9d5504b09864a140e29ee75073b4f8af195923","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.11.9.tgz","fileCount":283,"integrity":"sha512-g7bEMSR7ScmvY1XIHvy7GhazC01aXro+eSNhZlmNhmL3yijyf82lGvk4TG/lFofreUAlAyT4r2bGsdMN54dv8A==","signatures":[{"sig":"MEYCIQCf6rOvOp08NxOS3sLRpB6CKrc8uN9sjBwhsyNPx6my4gIhAOwvjsVxn8vHTclZBiw9A4ou5a92CIyEzKUtYttN8a/b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3064291},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"934aced1c0108366cfdd2d4c555bf330af1ed52b","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.3"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.11.9_1772494940025_0.13198299803943114","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.0","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.0","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"bb2142c986ed7be0c65ee184cf62f93c435d56e8","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.0.tgz","fileCount":283,"integrity":"sha512-cFpAGTtbRtUeqoUwVXSGyuDheOoiWtD8UjXZ9/If5PVUDhe4qBcyQMuDvwmRw7pT4l6Rylki3Kw7bqV1Rez20g==","signatures":[{"sig":"MEQCIA12KRBy4drh3jF+GGgQy3wK+MDIh36BLWADL8gFv0ilAiA9zi7ZdN68uR870xCg8yQpxm5vifDw7mvex+A+69HRlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3083683},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"1c8cdf2f9a7f09893b57ac8deffe51a806deeac1","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.1","@njdamstra/appwrite-utils-helpers":"^0.1.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.0_1772578387925_0.7800036245458584","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.1","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.1","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"5d2947023f04206b4a54355f577660c025ac00af","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.1.tgz","fileCount":283,"integrity":"sha512-nFHxOgXP2zq6Bu4GkoW1LMw7th4QUERrOXlp1vTGaqa0VTM6ad8foRJeco7Fus7DHUP3EU67+DMHkE/SvK/Sbg==","signatures":[{"sig":"MEUCIF0R36T3og+aApAyIFDe+VVcaNu2+Q2/97OCNzUZeye/AiEAzT7Cr29qukhpMK8p0qQw7k5IXb+kHJbbvG731eTU5yw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3089805},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"1c8cdf2f9a7f09893b57ac8deffe51a806deeac1","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.2","@njdamstra/appwrite-utils-helpers":"^0.1.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.1_1772580806924_0.9842661407637319","host":"s3://npm-registry-packages-npm-production"}},"1.12.2":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.2","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.2","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"ffbd657e620468c2c9c0da924a3456c5b0bb3845","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.2.tgz","fileCount":283,"integrity":"sha512-wB0ncR1F3lKP215IQ1DfOpHsPEt9uKk33ckobbWcNOwW5SVP51w5l95v6+eu8XWLmjZ2nJjgJeNx86oNgXdK8A==","signatures":[{"sig":"MEUCICutQipRsrDPRY3CXfDGyRURdWwCfVtzJuP0+MgD6FCiAiEApvEDQwqjHNPiKH9ib3PKjMT3YvXbKvTwAF8RC9BZDW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3092376},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"1c8cdf2f9a7f09893b57ac8deffe51a806deeac1","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.2","@njdamstra/appwrite-utils-helpers":"^0.1.5"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.2_1772584197241_0.07030622434344735","host":"s3://npm-registry-packages-npm-production"}},"1.12.3":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.3","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.3","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"3598706fa4b3cac880dd4cd8429aa35ebd13d11d","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.3.tgz","fileCount":286,"integrity":"sha512-3yIoVJqJxNVZu6PUJwfEXLPAMBu60VqV+RiifJ9F/VmQqm1Ad3RTZKVEDcuw6ZaTuPOJC2GlAYGEtEj5gsIFdw==","signatures":[{"sig":"MEUCIEwVfoJpuJYzLG4Hg6aot8Tl3FhUBB+db2imGRtAKgmoAiEAi/XvxDrvITzAAidbyj6Y9hq4BRWNGiLm8I0rM8AJbws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3100385},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"1c8cdf2f9a7f09893b57ac8deffe51a806deeac1","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.3_1772593682631_0.06728595474258658","host":"s3://npm-registry-packages-npm-production"}},"1.12.4":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.4","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.4","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"f0380390adfb46286ad65712bffd87809f03f7e7","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.4.tgz","fileCount":286,"integrity":"sha512-CiCTAeIbr7K7FWABd4H3bZVjwu7CXQ8b08OmqNP/moc4aANvy0mcZw7Zj4Fyxh0sQsXPCetUdcwOw7Ni5XJ1vw==","signatures":[{"sig":"MEQCIDUk17esGQxqpTFA95OWDbSSAi1Z3O5X1upPuX9TXxOkAiAkaFQkY+0gAnoUXFfmNPTdB5g57ZqCteBda+yofxCNlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3102484},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"f17e11a0a818ba91cbbf58fee74efc266994d7ae","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.4_1772606165961_0.6888873285187616","host":"s3://npm-registry-packages-npm-production"}},"1.12.5":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.5","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.5","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"df3421198b95d4fc6f540e008c9aa346dab85a25","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.5.tgz","fileCount":286,"integrity":"sha512-yGVg/GVsldFxKkitTNU3l8huVzE0w/SbxQePmcYLZ9FhSxwVWscajAc+dVCm7eTjdWiFr0ULAdZGhOoDezhL3A==","signatures":[{"sig":"MEYCIQCWogKRKwErzEP6o+8cFqtUonDiYKGFURCQA0vPV8fD8QIhAO8axd31klg5wGgvPMPHgQuLdPtC4O6pH9KYIVxfDiwC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3102857},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.6"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.5_1772606862229_0.5836264675414018","host":"s3://npm-registry-packages-npm-production"}},"1.12.6":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.6","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.6","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"49df3461b1402939639c9c1a4c3909396c3e2125","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.6.tgz","fileCount":286,"integrity":"sha512-vAuMfq4zX0LnUlhsxQ9YwhEXdsm4qNWz/nuk+6dHHaRC85aTyLfb8qG9G6iloHlfO0LAtp131yiCcWGPtBTdxw==","signatures":[{"sig":"MEQCICma6ppbL5WqNJrHWjC10hfNtWIKhKTBJHf6pLqjAQDSAiAg2z9P18FG1gGf6Jefj/+Kc3jtf3igDly/KTHAvjm/sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3110677},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.6_1772668395487_0.2453017616741966","host":"s3://npm-registry-packages-npm-production"}},"1.12.7":{"name":"@njdamstra/appwrite-utils-cli","version":"1.12.7","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.12.7","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"e74214ba245a7859050b39df8c939229d2ee5b17","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.12.7.tgz","fileCount":286,"integrity":"sha512-SQzwybJVLDSX25ZtC5ru1yrfMqhLw9KItwztqR/bZrjcM/MXX0wAP3P/ajnCxyHBw+JW8V6s7GJrJobxn+YIpQ==","signatures":[{"sig":"MEUCIEF8eTbgTs3Ix9D6cdBASxD+ouZjzpyYp4QnbRvsG0HKAiEA70WLcMTpFGT75RgjV31cdzvlkIAPv/qlIAl/QkPiKIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3111149},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.12.7_1772739933438_0.2889349080456871","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@njdamstra/appwrite-utils-cli","version":"1.13.0","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.13.0","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"0c7d9cd3718ac060ff55adc75a690fdc939a9d18","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.0.tgz","fileCount":295,"integrity":"sha512-ssIT+hNThzzcWkDkAmc+vsr/ueiEw2SbSNcLitWu51tSfm2QmDDBzR8fpbwuvAMQV4wRb4g1bUCYsr0huF3/Mg==","signatures":[{"sig":"MEQCIBjvCvj2yJj56khi4iKxxnn+7n10gig4CWQiVpveZymQAiBNckth3AjezKy3MKp20kAmjDGI1CZDh0ReVIm4nfjQ+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3169906},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.3","@njdamstra/appwrite-utils-helpers":"^0.1.8"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.13.0_1772834588932_0.9139845744138138","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@njdamstra/appwrite-utils-cli","version":"1.13.1","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.13.1","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"81f6a9c8caaf0c3987c3d087f2398f7ffe22dd34","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.1.tgz","fileCount":295,"integrity":"sha512-OBn29aS/+nDrMUwqEqaklv3ANGIqX42/dgEeC9F8rXGYucSmSGtxEeHX5OBrG/YeR6t0khMEpfnjVloN2/NVAw==","signatures":[{"sig":"MEQCIA64YpZJJhho0d5eCm45M9TwoBWW5xe6JgNB7xIq/XOPAiAoDAFyQBDLU3RWDZwVs+kBKk0ev4FiFXyxCJ0XQijB/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3169906},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.4","@njdamstra/appwrite-utils-helpers":"^0.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.13.1_1772841753280_0.6699342598807776","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"@njdamstra/appwrite-utils-cli","version":"1.13.2","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.13.2","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"30757abd63d470b7e17c55ca43e15b1d60c611f1","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.2.tgz","fileCount":295,"integrity":"sha512-vzLcl3DKgnoLkzFHwB/+CcEhz091wbKy2Hu/jpfdqsm0i3XgHsCB+E4M31xaajC15rmHu+x4fW6I17aIqv+f2g==","signatures":[{"sig":"MEUCIDifmlbWl6IgPsyxsYbfk+xbJi8ySfxzvfuqDHSyQcDVAiEAzQll7QSEg8FUnC9atjDngh94UrWiU9cd2mH6wogMsV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3170294},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0271927f21f425f0128b8b9f07b381d7bd97e303","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"workspace:*","@njdamstra/appwrite-utils-helpers":"workspace:*"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.13.2_1773190892584_0.35299306722095114","host":"s3://npm-registry-packages-npm-production"}},"1.13.3":{"name":"@njdamstra/appwrite-utils-cli","version":"1.13.3","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.13.3","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"13d57a3b1f215b7c6e8fbbf1473a419af9d45aa3","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.3.tgz","fileCount":295,"integrity":"sha512-5KEtFcUBancuFRa2ctzet/AIZyyuRgK5QMhPXfjiD1uPVs4ebgXOtByyY0zozg6TDCyRmcBjf7rflECIuoXoZw==","signatures":[{"sig":"MEUCIQDu+83ID07cGmttkVb0uCjbBKu4Afb7zUVHjzZMO9Wh7QIgDhHnGrYtKUSWOuSrf9ORE+KhVB0BEnk+c0FEqMLCcNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3170284},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0285a33dd50540413f2bf4d541f4a897a6bd24a4","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.5","@njdamstra/appwrite-utils-helpers":"^0.1.9"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.13.3_1773192506328_0.25625481004353223","host":"s3://npm-registry-packages-npm-production"}},"1.13.4":{"name":"@njdamstra/appwrite-utils-cli","version":"1.13.4","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"author":{"url":"https://zachhandley.com","name":"Zach Handley","email":"zach@blackleafdigital.com"},"_id":"@njdamstra/appwrite-utils-cli@1.13.4","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"bin":{"appwrite-migrate":"dist/main.js"},"dist":{"shasum":"d476696d934c19662776bdc73816511fe21ff0ee","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.4.tgz","fileCount":295,"integrity":"sha512-TX4LBZleosx/OG/wBrH+ar8e/B6JqXiZSe+3c9a+A8YBu22Idt9l4RyptI302UlEYp6JDsP9DL39Rmu0fSkCQQ==","signatures":[{"sig":"MEUCICBQ8s9zzPMu0vZFe+COjC9i7BrowRrA98s5oOvLchMiAiEA9SSHWHEWhVwjna6qGz4K2S1LWFFxoGnxrsGdJwvFgWs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3170285},"main":"dist/main.js","type":"module","types":"./dist/main.d.ts","gitHead":"0285a33dd50540413f2bf4d541f4a897a6bd24a4","scripts":{"test":"jest","build":"bun run tsc && bun run copy-templates","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test:ci":"jest --ci --coverage --watchAll=false","prebuild":"rm -rf dist","test:watch":"jest --watch","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'","test:coverage":"jest --coverage","copy-templates":"tsx scripts/copy-templates.ts"},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"repository":{"url":"git+https://github.com/njdamstra/AppwriteUtils.git","type":"git"},"_npmVersion":"11.10.0","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"tar":"^7.4.3","tsx":"^4.20.3","zod":"^4.0.0","chalk":"^5.4.1","jszip":"^3.10.1","luxon":"^3.6.1","ulidx":"^2.4.1","yargs":"^18.0.0","ignore":"^6.0.2","find-up":"^8.0.0","js-yaml":"^4.1.0","p-limit":"^6.2.0","winston":"^3.17.0","inquirer":"^9.3.7","commander":"^12.1.0","papaparse":"^5.5.3","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","nanostores":"^0.10.3","@types/yargs":"^17.0.33","cli-progress":"^3.12.0","node-appwrite":"^22.1.2","@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@njdamstra/appwrite-utils":"^1.7.5","@njdamstra/appwrite-utils-helpers":"^0.1.10"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3","@types/jest":"^29.5.12","@types/jszip":"^3.4.1","@types/luxon":"^3.6.2","@jest/globals":"^29.7.0","@types/lodash":"^4.17.18","@types/js-yaml":"^4.0.9","@types/papaparse":"^5.5.2","@types/cli-progress":"^3.11.6"},"_npmOperationalInternal":{"tmp":"tmp/appwrite-utils-cli_1.13.4_1773360515985_0.9315920513625657","host":"s3://npm-registry-packages-npm-production"}},"1.13.5":{"name":"@njdamstra/appwrite-utils-cli","description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","version":"1.13.5","main":"dist/main.js","type":"module","repository":{"type":"git","url":"git+https://github.com/njdamstra/AppwriteUtils.git"},"author":{"name":"Zach Handley","email":"zach@blackleafdigital.com","url":"https://zachhandley.com"},"keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"bin":{"appwrite-migrate":"dist/main.js"},"scripts":{"build":"bun run tsc && bun run copy-templates","prebuild":"rm -rf dist","copy-templates":"tsx scripts/copy-templates.ts","start":"tsx --no-cache src/main.ts","deploy":"bun run build && npm publish --access public","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","test:ci":"jest --ci --coverage --watchAll=false","postinstall":"echo 'This package is intended for CLI use only and should not be added as a dependency in other projects.'"},"dependencies":{"@types/inquirer":"^9.0.8","@types/json-schema":"^7.0.15","@types/yargs":"^17.0.33","@njdamstra/appwrite-utils":"^1.7.6","@njdamstra/appwrite-utils-helpers":"^0.1.10","chalk":"^5.4.1","cli-progress":"^3.12.0","commander":"^12.1.0","decimal.js":"^10.6.0","es-toolkit":"^1.39.4","find-up":"^8.0.0","ignore":"^6.0.2","inquirer":"^9.3.7","js-yaml":"^4.1.0","jszip":"^3.10.1","luxon":"^3.6.1","nanostores":"^0.10.3","node-appwrite":"^22.1.2","p-limit":"^6.2.0","papaparse":"^5.5.3","tar":"^7.4.3","tsx":"^4.20.3","ulidx":"^2.4.1","winston":"^3.17.0","yargs":"^18.0.0","zod":"^4.0.0"},"devDependencies":{"@jest/globals":"^29.7.0","@types/cli-progress":"^3.11.6","@types/jest":"^29.5.12","@types/js-yaml":"^4.0.9","@types/jszip":"^3.4.1","@types/lodash":"^4.17.18","@types/luxon":"^3.6.2","@types/papaparse":"^5.5.2","jest":"^29.7.0","ts-jest":"^29.1.2","typescript":"^5.8.3"},"gitHead":"0285a33dd50540413f2bf4d541f4a897a6bd24a4","types":"./dist/main.d.ts","_id":"@njdamstra/appwrite-utils-cli@1.13.5","bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","_nodeVersion":"24.11.1","_npmVersion":"11.10.0","dist":{"integrity":"sha512-HOGW7m4kWcr/iox9QgMp7XTJJUbplr2Xv4BU5GAxDciwX/0HJGdabMOAHCw9ASM1HpmR0s5QgIBaGtcGWR7nhg==","shasum":"786fc4bb13b9fc02bba2820060ad8a527dce0d90","tarball":"https://registry.npmjs.org/@njdamstra/appwrite-utils-cli/-/appwrite-utils-cli-1.13.5.tgz","fileCount":295,"unpackedSize":3170283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEj7yA735Fe0rvglYVh11xOmoPU6S5bIBsbnp/3G8SngAiEAw+2CoZlyc24E0XaEvGtjuY7ANMvKZSYQkXZs1fkoulI="}]},"_npmUser":{"name":"njdamstra","email":"njdamstra@gmail.com"},"directories":{},"maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/appwrite-utils-cli_1.13.5_1773874613638_0.890302190209064"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-18T21:15:12.348Z","modified":"2026-03-18T22:56:53.897Z","1.8.9":"2026-02-18T21:15:12.738Z","1.10.0":"2026-02-18T21:44:07.280Z","1.10.1":"2026-03-02T00:35:10.360Z","1.11.0":"2026-03-02T03:02:15.581Z","1.11.1":"2026-03-02T03:14:41.552Z","1.11.2":"2026-03-02T03:23:57.958Z","1.11.3":"2026-03-02T03:41:15.481Z","1.11.4":"2026-03-02T04:16:58.221Z","1.11.5":"2026-03-02T05:10:29.800Z","1.11.6":"2026-03-02T05:36:49.117Z","1.11.7":"2026-03-02T05:49:08.373Z","1.11.8":"2026-03-02T05:55:44.924Z","1.11.9":"2026-03-02T23:42:20.227Z","1.12.0":"2026-03-03T22:53:08.106Z","1.12.1":"2026-03-03T23:33:27.169Z","1.12.2":"2026-03-04T00:29:57.479Z","1.12.3":"2026-03-04T03:08:02.858Z","1.12.4":"2026-03-04T06:36:06.191Z","1.12.5":"2026-03-04T06:47:42.457Z","1.12.6":"2026-03-04T23:53:15.734Z","1.12.7":"2026-03-05T19:45:33.614Z","1.13.0":"2026-03-06T22:03:09.141Z","1.13.1":"2026-03-07T00:02:33.560Z","1.13.2":"2026-03-11T01:01:32.786Z","1.13.3":"2026-03-11T01:28:26.576Z","1.13.4":"2026-03-13T00:08:36.162Z","1.13.5":"2026-03-18T22:56:53.783Z"},"bugs":{"url":"https://github.com/njdamstra/AppwriteUtils/issues"},"author":{"name":"Zach Handley","email":"zach@blackleafdigital.com","url":"https://zachhandley.com"},"homepage":"https://github.com/njdamstra/AppwriteUtils#readme","keywords":["appwrite","cli","utils","migrations","data","database","import","migration","utility"],"repository":{"type":"git","url":"git+https://github.com/njdamstra/AppwriteUtils.git"},"description":"Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.","maintainers":[{"name":"njdamstra","email":"njdamstra@gmail.com"}],"readme":"# appwrite-utils-cli\n\n## Overview\n\n`@njdamstra/appwrite-utils-cli` is a powerful, YAML-first command-line interface tool designed for Appwrite developers who need to manage database migrations, schema generation, data import, and comprehensive project management. Built on a modular architecture with enhanced performance, this CLI tool facilitates complex tasks like setting up databases, running migrations, generating schemas, and managing backups efficiently.\n\nHighlights:\n- Adapter-first database orchestration (no legacy attribute fall-through)\n- Safe diff-based updates for attributes and indexes (no duplicate creations)\n- Manual push selections (no auto-push of all DBs)\n- Multi-database targeting per table/collection via `databaseIds`\n- Per-function configuration via `.fnconfig.yaml` (discovered anywhere in repo)\n\n## Features\n\n### Core Capabilities\n- **YAML-First Configuration**: Modern YAML-based configuration with JSON Schema support for IntelliSense\n- **Interactive Mode**: Professional guided CLI experience with rich visual feedback and progress tracking\n- **Modular Import System**: Completely refactored import architecture with 50%+ complexity reduction\n- **Enhanced Performance**: Configurable rate limiting and batch processing for optimal performance\n- **Safety First**: Smart confirmation dialogs for destructive operations with explicit confirmations\n\n### Dual API Support (Collections & TablesDB)\n- **Collections API**: Traditional Appwrite database operations with document-based terminology\n- **TablesDB API**: New high-performance table API with column-based terminology\n- **Automatic Detection**: Smart API mode detection (fetch-based detection; no extra packages required)\n- **Seamless Migration**: Zero-downtime migration between Collections and TablesDB APIs\n- **Terminology Flexibility**: Support for both `collections/documents/attributes` and `tables/rows/columns`\n\n### Data Management\n- **Advanced Data Import**: YAML-configured imports with sophisticated file handling, URL support, and user deduplication\n- **Relationship Resolution**: Intelligent cross-collection relationship mapping and ID resolution\n- **User Management**: Advanced user deduplication with email/phone matching and merge capabilities\n- **File Operations**: Complete file handling with URL downloads, local file search, and afterImportActions\n- **Backup Management**: Comprehensive backup system with progress tracking and detailed reporting\n\n### Development Tools\n- **Database Migrations**: Full migration control with progress tracking and operation summaries\n- **Schema Generation**: Generate TypeScript (Zod), JSON, and Python (Pydantic) schemas/models from database configurations\n- **Constants Generation**: Generate cross-language constants files (TypeScript, Python, PHP, Dart, JSON, Env) for database, collection, bucket, and function IDs\n- **Data Transfer**: Transfer data between databases, collections, and instances with real-time progress\n- **Configuration Sync**: Bidirectional synchronization between local YAML configs and Appwrite projects\n- **Function Management**: Deploy and manage Appwrite Functions with specification updates\n\n## Installation\n\nTo use `@njdamstra/appwrite-utils-cli`, you can install it globally via npm to make it accessible from anywhere in your command line:\n\n```bash\nnpm install -g @njdamstra/appwrite-utils-cli\n```\n\nHowever, due to the rapid development of this project, it's recommended to use the following command:\n\n```bash\nnpx --package=@njdamstra/appwrite-utils-cli@latest appwrite-migrate [options]\n```\n\n**Note: Do not install this locally into your project. It is meant to be used as a command-line tool only.**\n\n## TablesDB Support\n\n`@njdamstra/appwrite-utils-cli` provides comprehensive support for both traditional Appwrite Collections API and the new TablesDB API, enabling high-performance database operations with modern terminology.\n\n### API Mode Detection\n\nThe CLI automatically selects Collections or TablesDB using fetch-based server detection (health/version and endpoint probes). No additional SDK packages are required.\n\n### Configuration Comparison\n\n#### Collections API (Traditional)\n```yaml\n# .appwrite/config.yaml\ndatabases:\n  - name: \"main\"\n    id: \"main\"\n    collections:  # Collections terminology\n      - name: \"Users\"\n        id: \"users\"\n        attributes:\n          - key: \"email\"\n            type: \"string\"\n            required: true\n```\n\n#### TablesDB API (New)\n```yaml\n# .appwrite/config.yaml\ndatabases:\n  - name: \"main\"\n    id: \"main\"\n    tables:  # TablesDB terminology\n      - name: \"Users\"\n        id: \"users\"\n        attributes:  # Internally consistent\n          - key: \"email\"\n            type: \"string\"\n            required: true\n```\n\n### Performance Benefits\n\nTablesDB provides significant performance improvements:\n\n- **Bulk Operations**: Native support for bulk inserts, updates, and deletes\n- **Advanced Queries**: Enhanced query capabilities with better optimization\n- **Reduced Latency**: Direct table operations without document overhead\n- **Scalability**: Better performance with large datasets\n\n### Migration Commands\n\nThe CLI provides seamless migration between APIs:\n\n```bash\n# Migrate Collections config to TablesDB format\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --migrate-to-tablesdb\n\n# Convert existing Collections to Tables (when TablesDB is available)\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --sync --use-tablesdb\n\n# Generate schemas for TablesDB\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generate --api-mode=tablesdb\n```\n\n## YAML-First Configuration\n\nVersion 1.0.0 introduces a YAML-first approach for better cross-platform compatibility and enhanced developer experience.\n\n### Configuration Structure\n\nThe CLI automatically detects configuration files in this order:\n1. `.appwrite/config.yaml` (recommended)\n2. `appwrite.yaml`\n3. `appwriteConfig.ts` (legacy, still supported)\n\n### YAML Configuration Examples\n\n#### Collections API Configuration\n```yaml\n# .appwrite/config.yaml with JSON Schema support\n# yaml-language-server: $schema=./.yaml_schemas/appwrite-config.schema.json\n\nappwriteEndpoint: \"https://cloud.appwrite.io/v1\"\nappwriteProject: \"your-project-id\"\nappwriteKey: \"your-api-key\"\n\ndatabases:\n  - name: \"main\"\n    id: \"main\"\n    collections:  # Collections terminology\n      - name: \"Users\"\n        id: \"users\"\n        attributes:\n          - key: \"email\"\n            type: \"string\"\n            required: true\n            format: \"email\"\n          - key: \"name\"\n            type: \"string\"\n            required: true\n\nbuckets:\n  - name: \"documents\"\n    id: \"documents\"\n    permissions:\n      - target: \"any\"\n        permission: \"read\"\n\nlogging:\n  enabled: false  # Disabled by default\n  level: \"info\"\n  console: true\n```\n\n#### TablesDB API Configuration\n```yaml\n# .appwrite/config.yaml for TablesDB\n# yaml-language-server: $schema=./.yaml_schemas/appwrite-config.schema.json\n\nappwriteEndpoint: \"https://cloud.appwrite.io/v1\"\nappwriteProject: \"your-project-id\"\nappwriteKey: \"your-api-key\"\n\ndatabases:\n  - name: \"main\"\n    id: \"main\"\n    tables:  # TablesDB terminology\n      - name: \"Users\"\n        id: \"users\"\n        attributes:  # Internal compatibility\n          - key: \"email\"\n            type: \"string\"\n            required: true\n            format: \"email\"\n          - key: \"name\"\n            type: \"string\"\n            required: true\n\nbuckets:\n  - name: \"documents\"\n    id: \"documents\"\n    permissions:\n      - target: \"any\"\n        permission: \"read\"\n\nlogging:\n  enabled: false  # Disabled by default\n  level: \"info\"\n  console: true\n```\n\n## Usage\n\nAfter installation, you can access the tool directly from your command line using the provided commands.\n\n### Interactive Mode\n\nRun the CLI in interactive mode with enhanced visual feedback:\n\n```bash\nnpx --package=@njdamstra/appwrite-utils-cli@latest appwrite-migrate --it\n```\n\nThis provides a professional guided experience with:\n- Rich visual feedback and progress tracking\n- Smart confirmation dialogs for destructive operations\n- Operation summaries with detailed statistics\n- Real-time progress bars with ETA calculations\n\n### Generate Schemas (Zod / JSON / Pydantic)\n\nInteractive schema generation lets you pick the format and output directory:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --it\n# Choose: Generate schemas\n# Select: TypeScript (Zod), JSON, Python (Pydantic), or All\n# Enter output directory (absolute path respected)\n```\n\n- Pydantic models use modern typing (str | None, list[str]) and alias mapping for Appwrite system fields:\n  - Base model (written as `base.py`) defines aliases for `$id`, `$createdAt`, `$updatedAt`, `$permissions`, `$databaseId`, `$collectionId`, `$sequence`.\n  - Each collection/table generates a model extending `BaseAppwriteModel`.\n  - Serialize with aliases via `model_dump(by_alias=True)` and validate from Appwrite docs via `model_validate(...)`.\n  - Output directory is selectable; files are written directly to your chosen path (no extra subfolder).\n\n### Push (manual selection)\n\nPushing local schema is now an explicit, manual selection flow to avoid unintended changes:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --push\n```\n\n- Select databases from the remote project (no default auto-selection)\n- Select tables/collections to push per selected database\n- Summary confirmation is shown before applying changes\n\nFlags:\n- `--dbIds=id1,id2` pre-selects databases by ID (skips DB prompt)\n- `--collectionIds=c1,c2` pre-selects tables/collections by ID for the selected DB(s)\n\nEligibility per DB:\n- A table/collection is considered eligible for a database if:\n  - `databaseIds` includes the database ID, or\n  - `databaseId` equals the database ID, or\n  - neither field is set (eligible everywhere)\n\nAttribute/Index behavior:\n- Attributes and indexes are compared and only created/updated when changed\n- Unchanged definitions are skipped\n- Status is monitored until available (with sensible timeouts)\n\n### Non-Interactive Mode\n\nYou can also use specific flags to run tasks without the interactive prompt:\n\n```bash\nnpx --package=@njdamstra/appwrite-utils-cli@latest appwrite-migrate [options]\n```\n\n## YAML Import Configuration System\n\nVersion 1.0.0 introduces a powerful YAML-based import system with sophisticated data handling capabilities.\n\n### Import Configuration Examples\n\n#### Collections API Import\n```yaml\n# .appwrite/import/users-import.yaml\n# yaml-language-server: $schema=../.yaml_schemas/import-config.schema.json\n\nsource:\n  file: \"importData/users.json\"\n  basePath: \"RECORDS\"\n  type: \"json\"\n\ntarget:\n  collection: \"Users\"  # Collections terminology\n  type: \"create\"\n  primaryKey: \"user_id\"\n  createUsers: true\n\nmapping:\n  attributes:\n    - oldKey: \"user_id\"\n      targetKey: \"userId\"\n      converters: [\"anyToString\"]\n      validation:\n        - rule: \"required\"\n          params: [\"{userId}\"]\n\n    - oldKey: \"profile_image_url\"\n      targetKey: \"avatar\"\n      fileData:\n        path: \"{profile_image_url}\"\n        name: \"{user_id}_avatar\"\n      afterImport:\n        - action: \"createFileAndUpdateField\"\n          params: [\"{dbId}\", \"{collId}\", \"{docId}\", \"avatar\", \"{bucketId}\", \"{filePath}\", \"{fileName}\"]\n\n  relationships:\n    - sourceField: \"department_id\"\n      targetField: \"departmentId\"\n      targetCollection: \"Departments\"\n\noptions:\n  batchSize: 50\n  continueOnError: true\n```\n\n#### TablesDB API Import\n```yaml\n# .appwrite/import/users-tablesdb-import.yaml\n# yaml-language-server: $schema=../.yaml_schemas/import-config.schema.json\n\nsource:\n  file: \"importData/users.json\"\n  basePath: \"RECORDS\"\n  type: \"json\"\n\ntarget:\n  table: \"Users\"  # TablesDB terminology (alternatively: collection: \"Users\" works too)\n  type: \"create\"\n  primaryKey: \"user_id\"\n  createUsers: true\n\nmapping:\n  attributes:  # Note: Still uses 'attributes' for compatibility\n    - oldKey: \"user_id\"\n      targetKey: \"userId\"\n      converters: [\"anyToString\"]\n      validation:\n        - rule: \"required\"\n          params: [\"{userId}\"]\n\n    - oldKey: \"profile_image_url\"\n      targetKey: \"avatar\"\n      fileData:\n        path: \"{profile_image_url}\"\n        name: \"{user_id}_avatar\"\n      afterImport:\n        - action: \"createFileAndUpdateRowField\"  # TablesDB-specific action\n          params: [\"{dbId}\", \"{tableId}\", \"{rowId}\", \"avatar\", \"{bucketId}\", \"{filePath}\", \"{fileName}\"]\n\n  relationships:\n    - sourceField: \"department_id\"\n      targetField: \"departmentId\"\n      targetTable: \"Departments\"  # TablesDB terminology\n\noptions:\n  batchSize: 100  # TablesDB supports larger batches\n  continueOnError: true\n  useBulkOperations: true  # Enable TablesDB bulk operations\n```\n\n### Import System Features\n\n- **File Handling**: Complete support for URL downloads and local file search\n- **User Deduplication**: Sophisticated email/phone matching with merge capabilities\n- **Rate Limiting**: Configurable p-limit for optimal performance (5 concurrent by default)\n- **Relationship Resolution**: Intelligent cross-collection ID mapping\n- **Validation**: Pre-import validation with detailed error reporting\n- **Progress Tracking**: Real-time progress bars with batch processing statistics\n- **AfterImportActions**: Complete post-import action system for file uploads and field updates\n\n## Command-Line Options\n\nAvailable options:\n\n### Core Operations\n- `--it`: Run in interactive mode with enhanced visual feedback\n- `--setup`: Create setup files (supports both YAML and TypeScript)\n- `--generate`: Generate TypeScript and JSON schemas from database configurations\n- `--import`: Import data using YAML configurations with advanced processing\n- `--backup`: Comprehensive backup with progress tracking and detailed reporting\n\n### Data Management\n- `--dbIds`: Comma-separated list of database IDs to operate on\n- `--collectionIds`: Comma-separated list of collection IDs to operate on (also accepts `--tableIds`)\n- `--bucketIds`: Comma-separated list of bucket IDs to operate on\n- `--wipe`: Wipe data with smart confirmation (all: everything, docs: only documents, users: only user data)\n- `--wipeCollections`: Non-destructively wipe specified collections (also `--wipeTables`)\n- `--writeData`: Write converted imported data to file for validation\n\n### TablesDB-Specific Options\n- `--api-mode`: Force API mode (`collections` or `tablesdb`)\n- `--use-tablesdb`: Force TablesDB API usage when available\n- `--migrate-to-tablesdb`: Convert Collections configuration to TablesDB format\n- `--bulk-operations`: Enable bulk operations for TablesDB (default: true when available)\n- `--tableIds`: Comma-separated list of table IDs (alias for `--collectionIds`)\n\n### Configuration & Synchronization\n- `--push`: Push local YAML/TypeScript config to Appwrite project\n- `--sync`: Synchronize by pulling config from Appwrite project\n- `--endpoint`: Set the Appwrite endpoint\n- `--projectId`: Set the Appwrite project ID\n- `--apiKey`: Set the Appwrite API key\n\n### Transfer Operations\n- `--transfer`: Transfer data between databases or collections with progress tracking\n- `--transfer-users`: Transfer users between instances (will not overwrite)\n- `--fromDbId` / `--sourceDbId`: Source database ID for transfer\n- `--toDbId` / `--targetDbId`: Destination database ID for transfer\n- `--fromCollectionId`: Source collection ID for transfer\n- `--toCollectionId`: Destination collection ID for transfer\n- `--fromBucketId`: Source bucket ID for transfer\n- `--toBucketId`: Destination bucket ID for transfer\n- `--remoteEndpoint`: Remote Appwrite endpoint for transfers\n- `--remoteProjectId`: Remote Appwrite project ID for transfers\n- `--remoteApiKey`: Remote Appwrite API key for transfers\n\n### Function Management\n- `--updateFunctionSpec`: Update function specifications\n- `--functionId`: Function ID to update\n- `--specification`: New function specification (s-0.5vcpu-512mb to s-8vcpu-8gb)\n\n### Constants Generation\n- `--generateConstants` / `--constants`: Generate cross-language constants files with database, collection, bucket, and function IDs\n- `--constantsLanguages`: Comma-separated list of languages for constants generation (default: typescript)\n  - Available languages: `typescript`, `javascript`, `python`, `php`, `dart`, `json`, `env`\n- `--constantsOutput`: Output directory for generated constants files (default: config-folder/constants)\n\n## Examples\n\n### Generate Constants\n\nGenerate cross-language constants files for all your Appwrite resource IDs:\n\n```bash\n# Generate TypeScript constants (default)\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants\n\n# Generate multiple language formats\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --constantsLanguages=\"typescript,python,php,json\"\n\n# Generate all available formats\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --constantsLanguages=\"typescript,javascript,python,php,dart,json,env\"\n\n# Generate with custom output directory\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --constantsOutput=\"./my-constants\"\n```\n\nThis generates constants files in your configuration directory (e.g., `.appwrite/constants/`) containing:\n- Database IDs\n- Collection IDs  \n- Bucket IDs\n- Function IDs\n\n**Example TypeScript output:**\n```typescript\nexport const DATABASE_IDS = {\n  MAIN_DATABASE: \"main\"\n} as const;\n\nexport const COLLECTION_IDS = {\n  USERS: \"01JYDBQTB5W8SCBAYB654CCADQ\",\n  POSTS: \"01JYDBQTB5W8SCBAYB654POSTS\"\n} as const;\n\n// Type helpers and utility arrays included\nexport type DatabaseId = typeof DATABASE_IDS[keyof typeof DATABASE_IDS];\n```\n\n### Transfer Databases\n\nTransfer databases within the same project or from a local to a remote project:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --transfer --fromDbId sourceDbId --toDbId targetDbId --remoteEndpoint https://appwrite.otherserver.com --remoteProjectId yourProjectId --remoteApiKey yourApiKey\n```\n\n### Transfer Specific Collections\n\nTransfer specific collections from one place to another, with all of their data:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --transfer --fromDbId sourceDbId --toDbId targetDbId --fromCollectionId sourceCollectionId --toCollectionId targetCollectionId --remoteEndpoint https://appwrite.otherserver.com --remoteProjectId yourProjectId --remoteApiKey yourApiKey\n```\n\n### TablesDB Examples\n\n#### Enable TablesDB Mode\n```bash\n# Force TablesDB API usage\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --sync --use-tablesdb\n\n# Generate schemas with TablesDB terminology\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generate --api-mode=tablesdb\n```\n\n#### Migration from Collections to TablesDB\n```bash\n# Convert Collections configuration to TablesDB format\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --migrate-to-tablesdb\n\n# Sync with TablesDB API (requires node-appwrite-tablesdb)\nnpx --package=node-appwrite-tablesdb appwrite-utils-cli appwrite-migrate --sync --use-tablesdb\n```\n\n#### Bulk Operations with TablesDB\n```bash\n# Import with bulk operations enabled\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --import --bulk-operations\n\n# Transfer tables with high-performance bulk operations\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --transfer --fromDbId sourceDb --toDbId targetDb --tableIds table1,table2 --use-tablesdb\n```\n\n#### Working with Tables (TablesDB terminology)\n```bash\n# Wipe specific tables\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --wipeTables --tableIds users,posts\n\n# Generate constants with table terminology\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --api-mode=tablesdb\n```\n\n### Transfer Buckets\n\nTransfer files between buckets:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --transfer --fromBucketId sourceBucketId --toBucketId targetBucketId --remoteEndpoint https://appwrite.otherserver.com --remoteProjectId yourProjectId --remoteApiKey yourApiKey\n```\n\n### Update Function Specifications\n\n**NOTE: IF IT DOES NOT WORK AND YOU ARE SELF-HOSTED, PLEASE SET MAX CPU_PER_FUNCTION AND RAM_PER_FUNCTION IN YOUR ENV VARS TO > 0, THIS IS A BUG IN 1.6.0 -- YOU SET THE FUNCTION RAM IN MB**\n\nUpdate the CPU and RAM specifications for a function:\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --updateFunctionSpec --functionId yourFunctionId --specification s-1vcpu-1gb\n```\n\nAvailable specifications:\n\n- s-0.5vcpu-512mb: 0.5 vCPU, 512MB RAM\n- s-1vcpu-1gb: 1 vCPU, 1GB RAM\n- s-2vcpu-2gb: 2 vCPU, 2GB RAM\n- s-2vcpu-4gb: 2 vCPU, 4GB RAM\n- s-4vcpu-4gb: 4 vCPU, 4GB RAM\n- s-4vcpu-8gb: 4 vCPU, 8GB RAM\n- s-8vcpu-4gb: 8 vCPU, 4GB RAM\n- s-8vcpu-8gb: 8 vCPU, 8GB RAM\n\n## Additional Notes\n\n- If you run out of RAM during large data imports, you can increase Node's memory allocation:\n\n  ```bash\n  export NODE_OPTIONS=\"--max-old-space-size=16384\"\n  ```\n\n  This sets the allocation to 16GB. For most cases, 8GB (`8192`) should be sufficient.\n\n- The CLI now supports OpenAPI generation for each attribute in the schema. Add a `description` to any attribute or collection, and it will export that schema to the `appwrite/openapi` folder.\n\nThis updated CLI ensures that developers have robust tools at their fingertips to manage complex Appwrite projects effectively from the command line, with both interactive and non-interactive modes available for flexibility.\n\n## Changelog\n\n### 1.5.0 - Recursive Zod v4 Schemas + One‑Way Relationship Support\n\nHighlights\n- Recursive getters: Generated schemas now use Zod v4 recursive getters (no `z.lazy`, no `BaseSchema` layering). Cleaner types and fully inferred mutual recursion.\n- One‑way relationships: Relationship attributes are now included even when `twoWay: false`. Related imports resolve collection IDs to names.\n- Required semantics: Relationship getters respect `required` and `array`:\n  - required scalar → `RelatedSchema`\n  - optional scalar → `RelatedSchema.nullish()`\n  - required array → `RelatedSchema.array()`\n  - optional array → `RelatedSchema.array().nullish()`\n- JSON Schemas: `$ref` definitions use resolved collection names when YAML provides IDs.\n\nValidation changes\n- Relationship schema: `twoWayKey` and `side` are now required only when `twoWay` is `true`.\n- Helpful errors: Keeps strong validation but removes false negatives for one‑way relationships.\n\nDeveloper notes\n- Imports: Schema generators import only `...Schema` from related collections (no type imports needed).\n- Example YAML: `Posts.yaml` demonstrates a required `manyToMany` (`categories`) and a one‑way `manyToOne` (`author`).\n\n\n### 1.3.0 - Zod v4 Upgrade & Collection Management Fixes\n\n**🎉 Major Release - Zod v4 Compatibility & Reliability Improvements**\n\n#### Breaking Changes\n- **Zod v4 Upgrade**: Updated to Zod v4.0.0 for enhanced schema validation\n  - ⚠️ **Potential Breaking Change**: Some schema validations may behave differently\n  - Function event types are now more flexible to accommodate Zod v4 changes\n  - Review your validation schemas if you experience issues\n\n#### Major Bug Fixes\n- **Fixed Duplicate Attribute Creation**: Resolved issue where attributes were being created multiple times\n  - Implemented intelligent filtering to only process new or changed attributes\n  - Enhanced status monitoring and error handling\n  - Significantly improved sync performance and reliability\n\n- **Fixed Index Creation Issues**: Resolved indexes not being created from collection configurations\n  - Added proper null checks for index arrays from different collection sources\n  - Enhanced index creation with comprehensive status monitoring\n  - Improved error handling and retry logic for stuck indexes\n\n#### Enhanced Collection Management\n- **Smart Attribute Processing**: Attributes are now only created/updated when needed\n  - Compares existing vs. config attributes before processing\n  - Skips unchanged attributes with clear logging\n  - Better handling of edge cases and error conditions\n\n- **Improved Index Handling**: More robust index creation from collection configs\n  - Proper fallback logic when indexes are undefined\n  - Enhanced compatibility with different collection sources\n  - Better error reporting and debugging information\n\n#### Performance Improvements\n- **Optimized Sync Operations**: Collections now process only necessary changes\n- **Enhanced Status Monitoring**: Real-time feedback for attribute and index operations\n- **Better Resource Management**: Reduced API calls through intelligent filtering\n\n#### Developer Experience\n- **Build Stability**: Resolved TypeScript compilation issues with function schemas\n- **Type Safety**: Maintained strict typing while accommodating Zod v4 changes\n- **Enhanced Logging**: Better progress reporting and error messages\n\n#### Migration Guide\n1. **Update Dependencies**: Ensure compatibility with Zod v4.0.0\n2. **Test Collection Operations**: Verify that attribute and index creation works as expected\n3. **Review Validations**: Check any custom validation schemas for potential breaking changes\n4. **Function Events**: Function event arrays are now `string[]` for enhanced flexibility\n\n**Integration Note**: This version significantly improves collection management reliability and provides full Zod v4 compatibility. The fixes address core synchronization issues that could cause duplicate resources or missing indexes.\n\n---\n\n### 1.1.0 - Enhanced Transfer System with Fault Tolerance\n\n**🔧 Robust Transfer Operations with Status Monitoring**\n\n#### Enhanced Attribute Creation with Fault Tolerance\n- **Exponential Backoff**: Intelligent retry strategy starting at 2 seconds, doubling each retry (2s, 4s, 8s, 16s, 30s max)\n- **Status Monitoring**: Real-time monitoring of attribute states ('available', 'processing', 'stuck', 'failed', 'deleting')\n- **Retry Logic**: Collection deletion/recreation for stuck attributes with up to 5 retry attempts\n- **Sequential Processing**: Attributes processed one-by-one to prevent overwhelming the server\n- **Enhanced Logging**: Comprehensive console feedback with color-coded status messages\n\n#### Enhanced Index Creation with Status Monitoring\n- **Similar Fault Tolerance**: Index creation now includes the same robust monitoring and retry logic\n- **Status Checking**: Real-time monitoring of index creation states with proper error handling\n- **Collection Recreation**: Automatic collection deletion/recreation for stuck index operations\n- **Sequential Processing**: Prevents rate limiting by processing indexes individually\n\n#### Document Transfer Reliability Improvements\n- **Enhanced Error Handling**: Improved document transfer with exponential backoff retry logic\n- **Smaller Batch Sizes**: Reduced batch sizes (10 documents) to prevent server overload\n- **Better Progress Reporting**: Enhanced progress tracking with success/failure counts\n- **Fault Tolerance**: Graceful handling of duplicate documents and API errors\n\n#### Remote Database Transfer Enhancements\n- **Integrated Enhanced Methods**: Updated `transferDatabaseLocalToRemote` to use new attribute and index creation\n- **Proper Wait Logic**: System now properly waits for attributes/indexes to be fully created before proceeding\n- **Status Validation**: Comprehensive status checking throughout the transfer process\n- **Continued Operation**: Transfer continues even if some attributes/indexes fail (with warnings)\n\n#### AppwriteConfig Integration for Comprehensive Transfer\n- **Smart Configuration Detection**: Automatically detects existing appwriteConfig for reuse\n- **Source/Target Options**: Users can select their appwriteConfig for either source or target endpoints\n- **Streamlined Setup**: Enhanced user experience with clear configuration prompts\n\n#### Technical Implementation\n- **Rate Limiting Respect**: Enhanced operations respect existing rate limiting while adding reliability\n- **Memory Efficiency**: Optimized processing to handle large operations without overwhelming system resources\n- **Error Resilience**: Comprehensive error handling with detailed user feedback and recovery options\n- **Status Persistence**: Operations maintain state information for better debugging and monitoring\n\n#### Usage Benefits\n- **Reliability**: Transfer operations no longer fail due to timing issues or stuck operations\n- **Visibility**: Clear progress indicators and status messages throughout all operations\n- **Recovery**: Automatic retry and recovery mechanisms prevent data loss\n- **Performance**: Optimized timing prevents API throttling while maintaining speed\n\n**Breaking Change**: None - fully backward compatible with significantly enhanced reliability.\n\n### 1.0.9 - Enhanced User Transfer with Password Preservation\n\n**🔐 Complete Password Hash Preservation During User Transfers**\n\n#### Password Hash Support\n- **Universal Hash Support**: Support for all Appwrite password hash types:\n  - **Argon2**: Modern default hashing (preserved)\n  - **Bcrypt**: Industry standard (preserved)\n  - **Scrypt**: Memory-hard function with custom parameters (preserved)\n  - **Scrypt Modified**: Firebase-style with salt/separator/signer (preserved)\n  - **MD5**: Legacy support (preserved)\n  - **SHA variants**: SHA1, SHA256, SHA512 (preserved)\n  - **PHPass**: WordPress-style hashing (preserved)\n- **Dynamic Hash Detection**: Automatically detects and uses correct hash creation method\n- **Parameter Preservation**: Maintains hash-specific parameters (salt, iterations, memory cost, etc.)\n\n#### Enhanced User Transfer Logic\n- **Smart Password Recreation**: Uses appropriate `create*User` method based on detected hash type\n- **Fallback Mechanism**: Graceful fallback to temporary passwords if hash recreation fails\n- **Hash Options Support**: Preserves algorithm-specific configuration from `hashOptions`\n- **Detailed Logging**: Clear success/failure messages with hash type information\n\n#### User Experience Improvements\n- **Accurate Information**: Updated CLI messaging to reflect actual password preservation capabilities\n- **Clear Expectations**: Distinguishes between users who keep passwords vs. those who need reset\n- **Success Feedback**: Detailed reporting of password preservation success rate\n- **Risk Assessment**: Proper warnings only for users who will lose passwords\n\n#### Technical Implementation\n- **Hash Type Detection**: `user.hash` field determines creation method\n- **Configuration Parsing**: `user.hashOptions` provides algorithm parameters\n- **Error Resilience**: Comprehensive try-catch with fallback to temporary passwords\n- **Type Safety**: Proper handling of hash option types and parameters\n\n#### Migration Benefits\n- **Seamless Login**: Users with preserved hashes can immediately log in with original passwords\n- **Reduced Support**: Dramatically fewer password reset requests after migration\n- **Complete Fidelity**: Maintains original security posture and hash strength\n- **Production Ready**: Safe for live user base migrations\n\n#### Usage Examples\n```bash\n# Users will now preserve passwords during comprehensive transfer\nnpx appwrite-utils-cli@latest appwrite-migrate --it\n# Select: 🚀 Comprehensive transfer (users → databases → buckets → functions)\n\n# Example output:\n# ✅ User 123 created with preserved argon2 password\n# ✅ User 456 created with preserved bcrypt password  \n# ⚠️  User 789 created with temporary password - password reset required\n```\n\n**Breaking Change**: None - fully backward compatible with enhanced capabilities.\n\n### 1.0.8 - Comprehensive Transfer System with Enhanced Rate Limiting\n\n**🚀 Complete Cross-Instance Transfer Solution**\n\n#### Comprehensive Transfer System\n- **New CLI Option**: `🚀 Comprehensive transfer (users → databases → buckets → functions)` in interactive mode\n- **Orchestrated Transfer Flow**: Proper execution order (users → databases → buckets → functions) for dependency management\n- **Cross-Instance Support**: Transfer entire Appwrite configurations between different instances/projects\n- **Selective Transfer**: Choose which components to transfer (users, databases, buckets, functions)\n- **Dry Run Mode**: Test transfers without making actual changes\n\n#### Enhanced Rate Limiting Strategy\n- **Configurable Limits**: 5 to 100 concurrent operations in steps of 5\n- **Differentiated Rates**: Smart rate limiting based on operation type:\n  - **General Operations**: Full rate (databases, functions)\n  - **User Operations**: Half rate (more sensitive operations)\n  - **File Operations**: Quarter rate (most bandwidth intensive)\n- **Visual Feedback**: Real-time rate limit display during transfers\n- **Intelligent Scaling**: Automatic calculation of optimal rates for different operations\n\n#### File Transfer Enhancements\n- **File Validation**: Comprehensive integrity checking (empty files, size limits)\n- **Retry Logic**: Exponential backoff for failed file transfers\n- **Error Handling**: Graceful handling of corrupt/invalid files\n- **Progress Tracking**: Real-time progress for large file transfers\n\n#### Function Transfer Integration\n- **Automated Function Migration**: Download from source, redeploy to target\n- **Temporary Management**: Automatic cleanup of downloaded function code\n- **Existing Code Integration**: Leverages existing deployment infrastructure\n- **Configuration Preservation**: Maintains function settings and variables\n\n#### User Experience Improvements\n- **Password Reset Warnings**: Clear notifications about Appwrite password limitations\n- **Interactive Configuration**: Step-by-step prompts for source/target setup\n- **Comprehensive Reporting**: Detailed transfer summaries with statistics\n- **Smart Confirmations**: Risk-based confirmations for destructive operations\n\n#### Technical Implementation\n- **Rate Limiting**: Uses p-limit for concurrent operation control\n- **Error Resilience**: Robust error handling with detailed user feedback\n- **Memory Management**: Efficient processing of large datasets\n- **Progress Tracking**: Real-time progress bars with ETA calculations\n\n#### Usage Examples\n```bash\n# Interactive mode - select comprehensive transfer\nnpx appwrite-utils-cli@latest appwrite-migrate --it\n\n# Example rate limiting at 20 concurrent:\n# - General operations: 20 concurrent\n# - User operations: 10 concurrent  \n# - File operations: 5 concurrent\n```\n\n**Benefits**:\n- Complete Appwrite instance migration capability\n- Intelligent rate limiting prevents API throttling\n- Enhanced file transfer reliability\n- Comprehensive progress tracking and reporting\n- Maintains data integrity across transfers\n\n### 1.0.7 - Forgot to remove debug logs\n\n### 1.0.6 - Cross-Language Constants Generation\n\n**🚀 Enhanced Developer Experience with Multi-Language Constants**\n\n#### Constants Generation System\n- **Cross-Language Support**: Generate constants in 7 languages for seamless multi-platform development\n  - **TypeScript**: Type-safe constants with `as const` and helper types\n  - **JavaScript**: ES6 modules with utility arrays\n  - **Python**: Class-based constants with snake_case dictionaries\n  - **PHP**: Static class methods and associative arrays\n  - **Dart**: Maps with individual getter methods (camelCase)\n  - **JSON**: Structured data with metadata for cross-platform integration\n  - **Environment Variables**: Prefixed environment variables for deployment\n- **Smart Directory Structure**: Constants generated in `{config-folder}/constants/` by default\n- **CLI Integration**: Both command-line and interactive mode support\n- **Custom Output**: Support for custom output directories when needed\n\n#### Resource ID Extraction\n- **Database IDs**: Extract all configured database identifiers\n- **Collection IDs**: Generate constants for all collection ULIDs/names\n- **Bucket IDs**: Include storage bucket identifiers\n- **Function IDs**: Support for Appwrite Function identifiers\n- **Naming Conventions**: Language-appropriate naming (UPPER_CASE, camelCase, snake_case)\n\n#### Developer Experience Improvements\n- **Interactive Mode**: Checkbox selection for languages with smart defaults\n- **CLI Commands**: Simple `--generateConstants` with language and output options\n- **Type Safety**: Full TypeScript support with generated types and helpers\n- **Cross-Platform Compatibility**: Enable seamless development across different tech stacks\n\n#### Usage Examples\n```bash\n# Default TypeScript generation\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants\n\n# Multi-language generation\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --constantsLanguages=\"typescript,python,php,json\"\n\n# All formats with custom output\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --generateConstants --constantsLanguages=\"typescript,javascript,python,php,dart,json,env\" --constantsOutput=\"./constants\"\n```\n\n**Migration Benefits**: \n- Eliminates hardcoded resource IDs across codebases\n- Enables type-safe resource access in TypeScript projects\n- Supports multi-language development workflows\n- Maintains constants alongside configuration for easy maintenance\n\n### 1.0.1 - Function Templates & Attribute Type Improvements\n\n**🚀 Enhanced Function Management & Type System Fixes**\n\n#### Function Template System Improvements\n- **ES Module Compatibility**: Fixed `__dirname is not defined` error when creating function templates\n- **Template-Specific Defaults**: Added pre-configured settings for all function templates:\n  - `typescript-node`: Node.js 21.0, TypeScript build setup, 0.5vCPU/512MB\n  - `uv`: Python 3.12, UV package manager, 0.5vCPU/512MB  \n  - `count-docs-in-collection`: Node.js 21.0, specialized counting function, 1vCPU/512MB\n- **YAML Config Integration**: Functions now automatically added to YAML config with generated ULIDs\n- **Interactive Enhancement**: Improved template selection with descriptive names and smart defaults\n\n#### YAML Collections Loading Fix\n- **Path Resolution**: Fixed collections directory resolution for YAML configurations\n- **Cross-Platform Support**: Collections now properly detected in `.appwrite/collections/` regardless of config location\n- **Backwards Compatibility**: Both TypeScript and YAML collection structures fully supported\n\n#### Attribute Type System Overhaul\n- **Double/Float Compatibility**: Resolved Zod discriminated union errors with proper schema separation\n- **Backwards Compatibility**: Full support for both \"double\" and \"float\" attribute types\n- **Schema Architecture**: Clean separation with shared base schema for numeric attributes\n- **Type Safety**: Enhanced TypeScript support with proper type inference\n\n#### Developer Experience Improvements\n- **Error Resolution**: Eliminated all TypeScript compilation errors\n- **Template Updates**: Updated function template references from deprecated \"poetry\" to \"uv\"\n- **Schema Validation**: Improved attribute validation with better error messages\n- **Clean Architecture**: Removed deprecated relationship attributes for better performance\n\n#### Bug Fixes\n- Fixed YAML collection path resolution in nested directory structures\n- Resolved ES module compatibility issues in function template creation\n- Eliminated Zod discriminated union conflicts for numeric attribute types\n- Updated outdated template references and improved template selection UX\n\n**Migration Notes**: \n- Function templates now automatically integrate with YAML configs\n- Existing collections continue to work; deprecated relationship attributes converted to manual references\n- All numeric attributes now use consistent \"double\" type with \"float\" backwards compatibility\n\n### 1.0.0 - YAML-First Architecture & Import System Revolution\n\n**🎉 Major Release - Comprehensive Architecture Overhaul**\n\n#### YAML-First Configuration System\n- **Complete YAML support** with JSON Schema validation for IntelliSense\n- **Automatic discovery**: `.appwrite/config.yaml`, `appwrite.yaml`, or `appwriteConfig.ts`\n- **Cross-platform compatibility**: No TypeScript runner required\n- **Better organization**: Clean `.appwrite` directory structure\n- **Backward compatibility**: Existing TypeScript configs continue to work\n\n#### Import System Revolution (50%+ Complexity Reduction)\n- **Modular architecture**: Extracted DataLoader (1,688 lines) into focused services\n  - `DataTransformationService` - Pure data transformation logic\n  - `FileHandlerService` - URL downloads and local file handling\n  - `UserMappingService` - Sophisticated email/phone deduplication\n  - `ValidationService` - Centralized validation with detailed reporting\n  - `RelationshipResolver` - Cross-collection ID mapping\n  - `ImportOrchestrator` - High-level coordination\n- **Enhanced rate limiting**: Configurable p-limit for different operations\n  - `dataInsertion: 5` (concurrent document creation)\n  - `fileUpload: 2` (conservative for large files)\n  - `validation: 10` (pre-import validation)\n  - `dataQuery: 25` (relationship resolution)\n\n#### YAML Import Configuration System\n- **Complete YAML import definitions** with JSON Schema support\n- **Advanced file handling**: URL downloads with local file search fallback\n- **Sophisticated validation**: Pre-import validation with detailed error reporting\n- **Template generation**: Easy creation of new import configurations\n- **Relationship mapping**: Intelligent cross-collection ID resolution\n- **User deduplication**: Advanced email/phone matching with merge capabilities\n- **AfterImportActions**: Complete post-import action system\n\n#### Enhanced User Experience\n- **Rich visual feedback**: Progress bars with ETA and speed indicators\n- **Smart confirmation dialogs**: Risk-based confirmations for destructive operations\n- **Operation summaries**: Detailed post-operation reports with statistics\n- **Professional messaging**: Unified MessageFormatter with consistent styling\n- **Configurable logging**: Disabled by default, full configuration support\n\n#### Performance & Safety Improvements\n- **Batch processing**: Enhanced with progress tracking and memory efficiency\n- **Error resilience**: Improved error handling and recovery mechanisms\n- **Transaction safety**: Better handling of partial failures\n- **Memory optimization**: Efficient processing of large datasets\n\n#### Developer Experience\n- **JSON Schema generation**: Full IntelliSense support for YAML files\n- **Example configurations**: Comprehensive templates and examples\n- **Better error messages**: Clear validation and error reporting\n- **Type safety**: Full TypeScript support for all new features\n\n### Changelog\n\n- 1.2.18: Fix users transfer comparison not counting email or phone validation as a reason\n- 1.2.17: Fixed users transfer not keeping validation of email / phone, temporarily disable bulk transfer to see if permissions aren't being updated by it\n- 1.2.15: Fixed various transfer and sync functionalities\n- 1.0.5: Fixed `.` directories being ignored. Normally a good thing\n- 1.0.4: Fixed `appwriteConfig.yaml` being the name for the converted config, instead of `config.yaml`\n- 1.0.3: Fixed appwriteConfig detection for `--it` so it detects when you can migrate your config\n- 1.0.2: Fixed migrations, sorry about that!\n\n**Migration Note**: While fully backward compatible, we recommend migrating to YAML configuration for the best experience. Use `--setup` to generate new YAML configurations.\n\n- 0.10.86: Fixed `selectCollections` not always filtering by `databaseId`\n- 0.10.85: Added logging to `wipeCollection`\n- 0.10.83: Actually fixed the import oops\n- 0.10.82: Fixed the `lodash` import, replaced with `es-toolkit`\n- 0.10.81: Fixed `wipeCollection` -- it wasn't properly deleting all files in a loop\n- 0.10.80: Updated `@njdamstra/appwrite-utils` req\n- 0.10.78: Fixed `attributesSame` so it will properly update attributes that have changed\n- 0.10.77: Added disclaimer to update function specifications for bug\n- 0.10.76: Updated CLI commands to not require an `appwriteConfig.ts` if you set API Key, ProjectId, and Endpoint\n- 0.10.75: Fixed slight issue writing ZOD Schema for collection without any attributes\n- 0.10.74: Fix moving users, should update Labels now\n- 0.10.73: Fix moving users, passwords should work now (from Appwrite, Argon2)\n- 0.10.71: Fix create template function `__dirname`\n- 0.10.70: Fixed `--transfer-users` phones\n- 0.10.67: Added `--transfer-users` boolean flag to also transfer users between projects\n- 0.10.66: Fixed `ignore` always being an empty array, if not set, so it properly ignores the defaults\n- 0.10.65: Fixed the stupid local functions not caring about the ignore string, and added `__pycache__` and `.venv` to default ignores\n- 0.10.64: Fixed `Deploy Function(s)` not ignoring things properly\n- 0.10.63: My `collectLocalFunctions` function was failing to add the `scopes` and a few others to the function, accidentally, fixed now\n- 0.10.62: Made `Deploy Function(s)` also update the functions, as not all things (timeout, specification, etc.) are updated via deploy\n- 0.10.61: Fixed ignore haha, also added `ignore` to the `Functions` config, to specify what to ignore when creating the `.tar.gz` file\n- 0.10.051: Added `node_modules` and a few others to the ignore\n- 0.10.05: Made deploy function into deploy function(s) -- so you can do more than one at a time\n- 0.10.04: Fixed stupid progress bar not updating -- also fixed double text\n- 0.10.03: Fixed `syncDb` to push the configurations properly, accidentally hurt it during `synchronizeConfigurations`\n- 0.10.02: Updated `wipeCollection` to handle errors gracefully\n- 0.10.01: Fixed `predeployCommands` to work\n- 0.10.001: Updated `deployFunction` to not updateConfig if it's already present\n- 0.10.0: Fixed `synchronize configurations` for functions, now you do not need to deploy the function first\n- 0.9.999: Fixed Functions, looks for `./functions` in addition to `appwriteConfigFolder/functions`\n- 0.9.998: Fixed transfer finally, added `--targetDbId` and `--sourceDbId` as aliases\n- 0.9.994: Added function deployment management, in BETA, and fixed document transfer between databases\n- 0.9.993: Fixed `updateFunctionSpecifications` resetting functions to default with undefined values (oops)\n- 0.9.992: Added `updateFunctionSpecifications` which lists functions and specifications to allow you to update your functions max CPU and RAM usage per-function\n- 0.9.990: Fixed `transferFilesLocalToLocal` and `remote` if a document exists with that `$id`, also fixed wipe `\"all\"` option also wiping the associated buckets\n- 0.9.983: Fixed `afterImportActions` not resolving\n- 0.9.981: Try fixing `tryAwaitWithRetry` to catch `522` errors from Cloudflare, they were appearing for some users, also added a 1000ms delay to `tryAwaitWithRetry`\n- 0.9.98: Fixing some import errors reported by users\n- 0.9.95: Updated to include new version of `@njdamstra/appwrite-utils`\n- 0.9.93: Updated `selectDatabases` and `selectCollections` from the interactive CLI to prefer local collections or databases when synchronizing the databases\n- 0.9.92: Fixed `createOrUpdateAttributes` so it deletes attributes that don't exist in local config when you are running `syncDb`. Also updated the database and collection selection, so it won't try and fetch the collections and databases that don't exist (ones you picked from local config) and error\n- 0.9.91: Fixed another webpack error, screw you react (but you're supported now so I guess not-screw-you)\n- 0.9.90: Fixed Webpack errors (why tf does webpack add an extra `default`...???)\n- 0.9.80: Fixed collections not being unique between local and remote\n- 0.9.79: Fixed local collections not being considered for the synchronization unless all de-selected\n- 0.9.78: Added colored text! And also added a lot more customization options as to what to wipe, update, etc.\n- 0.9.75: Fixed attribute bug\n- 0.9.72: Fixed my own null bug\n- 0.9.71: Reverted `node-appwrite` to 14, this seems to fix the xdefault error\n- 0.9.70: I think I stopped it from deleting attributes, my bad on that\n- 0.9.68: Temporarily disabled updating Attributes until `updateStringAttribute` is fixed -- it just deletes them now\n- 0.9.65: Temporary fix for Appwrite's `updateStringAttribute` bug\n- 0.9.64: Fixed string attribute requiring xdefault\n- 0.9.61: Remove fileURLToPath -- should hopefully fix windows\n- 0.9.60: Fix init command to repository URL\n- 0.9.59: Fix to Windows path names for loading config\n- 0.9.58: The same as before, I just missed it hah\n- 0.9.57: Changed generated schema type of `$createdAt` and `$updatedAt` to string from `string | Date` cause honestly if you want a date just parse it\n- 0.9.56: Changed the updateAttribute so it doesn't always update attributes and hopefully fixed the required error\n- 0.9.55: Updated to use `node-appwrite@14` for appwrite 1.6.0\n- 0.9.54: Added small delay (`100ms`) between collection deletions, reduced other delays from `1000` to `500/250ms`\n- 0.9.53: Reduced delay, went too far\n- 0.9.52: Add delay after creating indexes, attributes, and others to prevent `fetch failed` errors during large-scale collection creation\n- 0.9.51: Fix transfer databases, remove \"ensure duplicates\" check\n- 0.9.5: Fixed not checking for storage bucket for each database (checking the creation status) when importing data\n- 0.9.4: Fixed migrations database ensuring it has the required collections\n- 0.9.3: Fixed deployment error && fix lack of existing `appwriteConfig.ts` file from causing error (you want to be able to setup yeah? haha)\n- 0.9.2: Added changelog back, whoops\n- 0.0.90: Updated README with new command-line options and fixed alias issues\n- 0.0.74: Added `--backup` support, even if only one database\n- 0.0.73: Fixed weird `workspace` issue\n- 0.0.72: Remove `ulid` for `ulidx`, fixing compatibility issues\n- 0.0.71: Slight change to file download logic after errors\n- 0.0.70: Bump to `node-appwrite` version\n- 0.0.69: Fixed single ID not getting replaced due to the below change =D also, `nice`\n- 0.0.68: Fixed the occasional case where, when mapping ID's from old data to new, there would be an array of ID's to match against. `idMappings` now supports arrays.\n- 0.0.67: Fixed `updates` in `importDef`'s update mappings overwriting postImportActions from the original\n- 0.0.57: Fixed `dataLoader`'s `idMapping`'s giving me issues\n- 0.0.55: Added `documentExists` check to batch creation functionality to try to prevent duplicates\n- 0.0.54: Various fixes in here\n- 0.0.50: Actually fixed the slight bug, it was really in the `mergeObjects`\n- 0.0.49: Fixed a slight bug with `dataLoader` not mapping updates correctly with `updateMapping`\n- 0.0.48: Added `--transfer`, `--fromdb <targetDatabaseId>`, `--targetdb <targetDatabaseId>`, `--transferendpoint <transferEndpoint>`, `--transferproject <transferProjectId>`, `--transferkey <transferApiKey>`. Additionally, I've added `--fromcoll <collectionId>` and `--targetcoll <collectionId>`. These allow you to do a few things. First, you can now transfer databases in the same project, and from local to a remote project. Second, you can now specify specific collections to transfer from one place to another, with all of their data. If `--fromcoll` and `--targetcoll` are ommitted, it will transfer the databases. During the database transfer, it will create any missing collections, attributes, and indices.\n- 0.0.47: Minor bugfixes in many releases, too small to take note of\n- 0.0.38: Lots of optimizations done to the code, added `tryAwaitWithRetry` for `fetch failed` and others like it errors (looking at you `server error`) -- this should prevent things from going sideways.\n- 0.0.37: Added `documentSecurity`, `enabled`, and `$id` to the `init` collection\n- 0.0.36: Made it update collections by default, sometimes you gotta do what you gotta do\n- 0.0.35: Added update collection if it exists and permissions or such are different (`documentSecurity` and `enabled`), also added a check for `fetch failed` errors to retry them with recursion, not sure how well that will work out, but we're gonna try it! It will still fail after 5 tries, but hopefully that gives Appwrite some time to figure it's stuff out\n- 0.0.34: Fixed the `bin` section of the package.json, apparently you can't use `node` to run it\n- 0.0.33: Fixed `idMappings`, if you are importing data and use the `idMappings` functionality, you can set a `fieldToSet` based on the value of a `sourceField` in the current imported items data (whether it's in the final data or the original), in order to match another field in another collection. So if you had a store, and it had items and the items have a Region ID for instance. You can then, in your regionId of the items, setup an `idMapping` that will allow you to map the value of the `targetField` based on the value of the `targetFieldToMatch` in the `targetCollection`. Sounds complex, but it's very useful. Like psuedo-relationship resolution, without the relationships.\n- 0.0.29: If you use the `description` variable in an attribute and collection, it'll add that description to the generated schemas. This assumes you have `zod-to-openpi`\n- 0.0.275: THINGS ARE NOW IN TYPESCRIPT WOOHOO. No but for reaal, super happy to report that everything has been converted to TypeScript, just way too many changes, I hope you enjoy it!\n- 0.0.274: Small improvement for attribute handling, rather than getting it every attribute, I check the collections attributes\n- 0.0.273: Small fix for relationship attribute comparisons\n- 0.0.272: That's what I get for not testing lmao, also updated logic for checking for existing attributes to take the `format` into consideration from the database (URL's are not of `type: \"url\"`, they are of `format: \"url\"`)\n- 0.0.271: Small change to update attributes that are different from each other by deleting the attribute and recreating, as we cannot update most things\n- 0.0.270: Fixed enums in `--sync`, added optional OpenAPI generation (in progress, almost done, but wanted to push other changes), added `--endpoint`, `--project`, `--key` as optional parameters to change the target destination (shoutout to [pingu24k](https://github.com/pingu2k4) for pointing out these bugs and suggesting those changes for endpoint customization)\n- 0.0.254: Added `--sync` to synchronize your Appwrite instance with your local `appwriteConfig.yaml` and generate schemas\n- 0.0.253: Added `--writeData` (or `--write-data`) to command to write the output of the import data to a file called dataLoaderOutput in your root dir\n- 0.0.23: Added batching to user deletion\n- 0.0.22: Converted all import processes except `postImportActions` and Relationship Resolution to the local data import, so it should be much faster.\n- 0.0.6: Added `setTargetFieldFromOtherCollectionDocumentsByMatchingField` for the below, but setting a different field than the field you matched. The names are long, but at least you know what's going on lmao.\n- 0.0.5: Added `setFieldFromOtherCollectionDocuments` to set an array of ID's for instance from another collection as a `postImportAction`\n## Multi-Database Targeting\n\nYou can target the same table/collection to multiple databases by adding `databaseIds` to the definition:\n\n```ts\n// Example: table.ts\nexport default {\n  name: 'Analytics',\n  databaseIds: ['dev', 'staging', 'main'],\n  attributes: [\n    { key: 'timestamp', type: 'datetime', required: true },\n    { key: 'totalUsers', type: 'integer' }\n  ],\n  indexes: [{ key: 'ts_idx', type: 'key', attributes: ['timestamp'] }]\n};\n```\n\nDuring push, this table will appear under each selected database whose ID matches `databaseIds`.\n\n## Per-Function Configuration (.fnconfig.yaml)\n\nYou can define functions in per-directory YAML files named `.fnconfig.yaml` (or `.fnconfig.yml`), discovered anywhere under your git repository root:\n\n```yaml\n# ./functions/reporting/.fnconfig.yaml\nid: reporting\nname: Reporting\nruntime: node-22.0\nexecute: [\"any\"]\nevents: []\ndirPath: ./  # defaults to the directory containing this file\ncommands: npm install\nentrypoint: index.js\n```\n\nRules:\n- If `dirPath` starts with `~`, it expands to your home directory\n- Relative `dirPath` resolves against the `.fnconfig.yaml` directory\n- Absolute `dirPath` is used as-is\n- `.fnconfig.yaml` definitions merge with central `.appwrite/config.yaml` functions; if the same `$id` exists in both, `.fnconfig.yaml` overrides\n\nDeployment uses the merged function set and resolves paths according to these rules.\n### Generate Constants\n\nSelect which languages and which categories to generate (databases, collections/tables, buckets, functions):\n\n```bash\nnpx @njdamstra/appwrite-utils-cli appwrite-migrate --it\n# Choose: Generate cross-language constants\n# Select languages (TS/JS/Python/PHP/Dart/JSON/Env)\n# Select categories to include\n```\n\nConstants are written to a configurable output directory under `.appwrite/` by default.\n","readmeFilename":"README.md"}