{"_id":"@aligntrue/file-utils","_rev":"34-5c2ca698f675433d633eb1e5aad0fa19","name":"@aligntrue/file-utils","dist-tags":{"next":"0.1.0-alpha.2","alpha":"1.0.0-alpha.6","latest":"0.9.3"},"versions":{"0.1.0-alpha.2":{"name":"@aligntrue/file-utils","version":"0.1.0-alpha.2","_id":"@aligntrue/file-utils@0.1.0-alpha.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"d176b978ecb620a4df9fd10029bb0573ab2fa2a1","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.1.0-alpha.2.tgz","fileCount":10,"integrity":"sha512-euO8ETnfzh6ihrWv9RQVV+/9g4N8LP6qN2V6dZApozhNduZ82kI8x2S6GJQPvqZyUvUR9TTVf8nbmbwp2NZPQw==","signatures":[{"sig":"MEQCIERhCLvchQ7mdXaiexKkL25vjSYEU77bMumUzS1tzNveAiBi0bPI4i+h2s+xgtUO04pRL/cPJWqCxeNzDDNuJepzJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25558},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.1.0-alpha.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/141eef81df2c4fd519d6199a6191a7d9/aligntrue-file-utils-0.1.0-alpha.2.tgz","_integrity":"sha512-euO8ETnfzh6ihrWv9RQVV+/9g4N8LP6qN2V6dZApozhNduZ82kI8x2S6GJQPvqZyUvUR9TTVf8nbmbwp2NZPQw==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.4","typescript":"^5","@types/node":"^24"},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.1.0-alpha.2_1761668926887_0.028874201622239415","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-alpha.3":{"name":"@aligntrue/file-utils","version":"0.1.1-alpha.3","_id":"@aligntrue/file-utils@0.1.1-alpha.3","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"5ddd0a454ed5e540c3790e395b4cd892262b3f0d","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.1.1-alpha.3.tgz","fileCount":11,"integrity":"sha512-4AU9rJRM1t4E2ARB86ROCu5zVYoUxp9RveY1VyDxhYL//cA/TMvy+wHy//K1BdvOJqW3R2HlacSt4O2LJaep1g==","signatures":[{"sig":"MEUCIQCy5V3xibUUoIDhhH9DyAOFhmGz4f6SeJFPtfgXwDh7WgIgeeYza8tfcYksMOVHDfFEy9MbeXoH2RKvgOZ+JeTHUz0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26696},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.1.1-alpha.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/2570a281adabf83dad45d7fd3769d6fe/aligntrue-file-utils-0.1.1-alpha.3.tgz","_integrity":"sha512-4AU9rJRM1t4E2ARB86ROCu5zVYoUxp9RveY1VyDxhYL//cA/TMvy+wHy//K1BdvOJqW3R2HlacSt4O2LJaep1g==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.1.1-alpha.3_1762478055805_0.7404012029542477","host":"s3://npm-registry-packages-npm-production"}},"0.1.1-alpha.4":{"name":"@aligntrue/file-utils","version":"0.1.1-alpha.4","license":"MIT","_id":"@aligntrue/file-utils@0.1.1-alpha.4","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"be115f03df376549c13b840dfb406703a1970327","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.1.1-alpha.4.tgz","fileCount":11,"integrity":"sha512-AEbgDkf+uUzKhW0vsyA31l8xwHRzZaYvFoBVuPM3dVlnhoFnoTGFrZBN2Obkxomo4VehfRjUOPQ7OjO5iM6zeA==","signatures":[{"sig":"MEQCIBqSchjhSKaSbn3hKUoJjjzoYGPpfdcKU6pZDmJOVkfhAiBdiYj+mk0J9qO9S1PCkq9oJFmnmxhd5j3THugJDNAXTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26716},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.1.1-alpha.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/b38c92a34638804a44c832c66a129c5a/aligntrue-file-utils-0.1.1-alpha.4.tgz","_integrity":"sha512-AEbgDkf+uUzKhW0vsyA31l8xwHRzZaYvFoBVuPM3dVlnhoFnoTGFrZBN2Obkxomo4VehfRjUOPQ7OjO5iM6zeA==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.1.1-alpha.4_1762969364749_0.12362176095893718","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.5":{"name":"@aligntrue/file-utils","version":"1.0.0-alpha.5","license":"MIT","_id":"@aligntrue/file-utils@1.0.0-alpha.5","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"ddbd5c4b15da4560a38bacca0ee1dd11c73d2f85","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-1.0.0-alpha.5.tgz","fileCount":11,"integrity":"sha512-3jWpCCL5g4m8Ulwqxj6J/v6vPhA4X9xQVwGL3XLj0d/YyLtfjAdNK/+Ft7w46TbYi/mGZYAwdRTBb5Vybpz4UA==","signatures":[{"sig":"MEYCIQD6+ucNCl04tWHiB7m/t94he2pDCaoCT7TA0OCgfk5TYgIhAP2YSl1jT0BFMUWxz1NJRaRAWehT0urcOjr31ZGbfl7f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28421},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-1.0.0-alpha.5.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/tmp/fdca65bbfa333dbaf05e9759f68afdb4/aligntrue-file-utils-1.0.0-alpha.5.tgz","_integrity":"sha512-3jWpCCL5g4m8Ulwqxj6J/v6vPhA4X9xQVwGL3XLj0d/YyLtfjAdNK/+Ft7w46TbYi/mGZYAwdRTBb5Vybpz4UA==","deprecated":"Migrated to 0.x versioning. Use @aligntrue/file-utils@latest (0.1.0+) instead.","_npmVersion":"10.9.4","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_1.0.0-alpha.5_1763184989698_0.03791448587964852","host":"s3://npm-registry-packages-npm-production"}},"1.0.0-alpha.6":{"name":"@aligntrue/file-utils","version":"1.0.0-alpha.6","license":"MIT","_id":"@aligntrue/file-utils@1.0.0-alpha.6","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"ee7b3df09bdd80164c765e965595b279ce2a3b67","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-1.0.0-alpha.6.tgz","fileCount":10,"integrity":"sha512-waEYynNVsjpPcL0xl9GcjXxKy750Zm9mRYMpcA2QcK8gWF++0Y1phCmIgG5qGMn8e+D1fNnGlgsCvrfFftd72A==","signatures":[{"sig":"MEQCIAcmO9DhOU/RKk3pFGR3Lmk8WRCoWNCopRUO3GiurMMdAiAepeqUU+SMu9se94bK5x9Jrdg3NlUCEbC+gbgbM0OMVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27353},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"b04eb7057d72305e79f989ac1c2a28509d61878f","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"deprecated":"Migrated to 0.x versioning. Use @aligntrue/file-utils@latest (0.1.0+) instead.","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_1.0.0-alpha.6_1763351925690_0.36620985735543443","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aligntrue/file-utils","version":"0.1.0","license":"MIT","_id":"@aligntrue/file-utils@0.1.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"e24edee729df2f7c279bff5b7cedfbf859ba7df5","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.1.0.tgz","fileCount":10,"integrity":"sha512-pT4jhB4bmqujTVQemZuOx+kVdu1cInraXhK3yX6HyWUGV7Go8sEpVXiTG9ULJzfVMkzcw8SsMgnMw8T34gacfQ==","signatures":[{"sig":"MEYCIQDH3Wx4e++YeMxm1Chs1MJixmSd5KCwV1o2gXG8xJ04VgIhAPg1RWkFnQ/sCNd4u1ppkDi/Sb/zNepnmMFHm1iv/jZe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8536cf12f8cbe7d338465bead868e78e7ce80b1e","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.1.0_1763356228536_0.8828712240779026","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aligntrue/file-utils","version":"0.1.1","license":"MIT","_id":"@aligntrue/file-utils@0.1.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"54fa2fc8065e384e847c4d214505e91979fa4b20","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.1.1.tgz","fileCount":10,"integrity":"sha512-c6wePjv88Udd6agysHEj3lZ81qfiUK6WBF4NI7oLzeq52J3cEiUoLmSt61z4o7lRXNmFQTa7ZwlskxNlnxwzyA==","signatures":[{"sig":"MEQCIA2bKu/HP6vkUgccdIToAkz4Z2BEdUwBH8QHGMJNhnayAiB1AfQj5re8IKIVK+4hMemU5vKg79499dfKOEjx8VkJsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d86e375f2952434f654890b0b5ec221784d5e5e5","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.1.1_1763356634228_0.5800677194509964","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aligntrue/file-utils","version":"0.2.0","license":"MIT","_id":"@aligntrue/file-utils@0.2.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"c0525d6dc071756c6886cd03bd68af0cead8bfd4","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.2.0.tgz","fileCount":10,"integrity":"sha512-aUuqGAhOVxGhqK6qgEXW14gXLMaxMMRSb/3pYZmwBsWx+mONNwEFaJMKCL05T64x679UxuWIf4iwDuUGPXoSWg==","signatures":[{"sig":"MEQCIBcjz+G6PeguRgeac59nFf/Zl4+Pmd7xoE47+5CQpzQbAiAzns2elP6UUKy8kFGIyrZdefeXCl+HFKd4pW8QE58lBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d8359202e86210404080835b1b4b937075f37be1","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.2.0_1763442560262_0.8395359633697486","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aligntrue/file-utils","version":"0.2.1","license":"MIT","_id":"@aligntrue/file-utils@0.2.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"1c7498cd750abb62be023a59e4121899bd9fbd52","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.2.1.tgz","fileCount":10,"integrity":"sha512-K3gEVs3hj6M7FKrjDfPQZhXjrgLceyM2SSqKLzWoQse6R42AJec6Gf0LWmhDEVgOc/QblR05mNMH9TphrOV5iw==","signatures":[{"sig":"MEQCIFCZGCfdVRXQlyqDpEAniH+LlFg0TaTrxxhcRMA/3NF2AiAQPL3+/u45zuapYNCbhgoh1t181ENicquK8V7GlrIDfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27345},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"3a51d38de396a30b659c700b4a0ecaf523b175d6","scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.2.1_1763529763382_0.7189049272144135","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@aligntrue/file-utils","version":"0.2.2","license":"MIT","_id":"@aligntrue/file-utils@0.2.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"f131483fc28c531a1a9fce4f4fc6a0451fccc527","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.2.2.tgz","fileCount":11,"integrity":"sha512-2G923Mo/JQMqBPgyY+Sayd4hKsu1QGclFnG6IwHUD7085g50FGYDzZQPuER/5H2OPWWyQVW62axvA8Y99CZ6Gw==","signatures":[{"sig":"MEQCIA/LZTelXbs8a28LWUP4YmxVIsKJtbcCr0vbUkHTl7NGAiB3nSnNHTLHQSB0zsjtD20bk3C5vy2Iydax26GLHZmUwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28413},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.2.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/c1b29c5e3ca138f2b5bd8ba4d922bdce/aligntrue-file-utils-0.2.2.tgz","_integrity":"sha512-2G923Mo/JQMqBPgyY+Sayd4hKsu1QGclFnG6IwHUD7085g50FGYDzZQPuER/5H2OPWWyQVW62axvA8Y99CZ6Gw==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.2.2_1763561778412_0.534537330008136","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aligntrue/file-utils","version":"0.2.3","license":"MIT","_id":"@aligntrue/file-utils@0.2.3","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"67c435c63fdc5e163c4555d579e301dda29cb303","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.2.3.tgz","fileCount":11,"integrity":"sha512-pFiFd96oQqBGzf801JZsupUJz1A7XDCxInFxdaHAloZW/Aa2C4QIWuKMaFGalP/VTFQDT9ZartMGKjddwdIO4w==","signatures":[{"sig":"MEUCIQDPNOdszxFk6Z6dpoQVlI92cvooActfYCHsZSu1Z8UbqAIgP/OjS/U1riR1dGSPmvzSk4Kt+B2I9brfwwW9KOGdepk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28413},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.2.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/2d39fc076e836d01b7757f82e24c381e/aligntrue-file-utils-0.2.3.tgz","_integrity":"sha512-pFiFd96oQqBGzf801JZsupUJz1A7XDCxInFxdaHAloZW/Aa2C4QIWuKMaFGalP/VTFQDT9ZartMGKjddwdIO4w==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.2.3_1763659608771_0.631096464547503","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aligntrue/file-utils","version":"0.3.0","license":"MIT","_id":"@aligntrue/file-utils@0.3.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"9cb671dcd810c4c2fb8b498cde0d2cceedf55455","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.3.0.tgz","fileCount":11,"integrity":"sha512-e5kUA9k9Fu3NMAAQNvfRHHqVqDdAMeU2f7D2PFGT0pRz86MH7w8YX6ZjUCjGAQxd5ESJvkjl2Wdl+NLxcEcffw==","signatures":[{"sig":"MEQCIDXPIqM4k+8+qQ54mKD3NagBWzOsQSCu5lfT2T0kZEOOAiBojP5hQRAqIy1Z4khTwORP78ZS1wnfM+ydN44joL8g6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28533},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/e4176d532d54f33c3afe7068fc28cbe9/aligntrue-file-utils-0.3.0.tgz","_integrity":"sha512-e5kUA9k9Fu3NMAAQNvfRHHqVqDdAMeU2f7D2PFGT0pRz86MH7w8YX6ZjUCjGAQxd5ESJvkjl2Wdl+NLxcEcffw==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.3.0_1763877190377_0.0016271712643758374","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aligntrue/file-utils","version":"0.4.0","license":"MIT","_id":"@aligntrue/file-utils@0.4.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"3d5ea0528c75f517a39b31bb349863f6897cd752","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.4.0.tgz","fileCount":11,"integrity":"sha512-dF61lEw5pu/uGcdhQcyKwoMTxz+hBOhjjhoB/xMojC4vM+2nddjZ6sUIzi2C0CRezMJDjZdhHiGBlRzgfWwWcg==","signatures":[{"sig":"MEQCIERIZbTlXySn5fuwS61oEyeLaUwRl44RlTBFEj1/puBYAiACKu3TPNF/+xkKTLJ/LoWN+WgPUb6uLeUsO9LEDUeIpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29673},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/d4ac757008c24451a8b1aeb41b8a7d5d/aligntrue-file-utils-0.4.0.tgz","_integrity":"sha512-dF61lEw5pu/uGcdhQcyKwoMTxz+hBOhjjhoB/xMojC4vM+2nddjZ6sUIzi2C0CRezMJDjZdhHiGBlRzgfWwWcg==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.4.0_1764252551740_0.26451042405176306","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@aligntrue/file-utils","version":"0.4.1","license":"MIT","_id":"@aligntrue/file-utils@0.4.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"11b90e58c66a4e048c7e8d2afe34155a742af44a","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.4.1.tgz","fileCount":11,"integrity":"sha512-LDZenA71DJDMOPh7lGUY1Pq0kNkqEAx/wO2lH35SDdt1A4ccdoAC5QU3WZwKtWOPiwEZFKcSNKcEIDuLmX8I1A==","signatures":[{"sig":"MEUCIAWxPrNg4O1a1qrgsP647T8lCbRcFeucH6pHCjTq+a5RAiEArrSDmqxB64/rmnb6Q3I7xM3iXN7tDzeHhtVEKW1DD18=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29600},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.4.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/0c4ba76caad4dd4a26698c396f4b1053/aligntrue-file-utils-0.4.1.tgz","_integrity":"sha512-LDZenA71DJDMOPh7lGUY1Pq0kNkqEAx/wO2lH35SDdt1A4ccdoAC5QU3WZwKtWOPiwEZFKcSNKcEIDuLmX8I1A==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.4.1_1764381800146_0.3542836158829672","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aligntrue/file-utils","version":"0.5.0","license":"MIT","_id":"@aligntrue/file-utils@0.5.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"8d51817d2693c233ab61ea81dc8c255b9e756de0","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.5.0.tgz","fileCount":11,"integrity":"sha512-/Zopp9ydswxVmzSy9KJvC22xkCDW8iAeKDvJE9W2bRsnEelY9h7fk90OZN3MAJH/8qCtvdzrDKt++qDqetBGmw==","signatures":[{"sig":"MEYCIQDpGI0KxjeQ+xEJAEK0/BZFHRj4zC9/yiQzlLmD2ysM9AIhAPbmYjpKiJMJ8MtlAL2o++IYHwEolJgeF8AtNsVO8Mqq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29600},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/6fbf31cf52af7bf855da0f2411665743/aligntrue-file-utils-0.5.0.tgz","_integrity":"sha512-/Zopp9ydswxVmzSy9KJvC22xkCDW8iAeKDvJE9W2bRsnEelY9h7fk90OZN3MAJH/8qCtvdzrDKt++qDqetBGmw==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.5.0_1764533215853_0.28814149466816863","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@aligntrue/file-utils","version":"0.5.1","license":"MIT","_id":"@aligntrue/file-utils@0.5.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"ce48ecbc3d1b00180258f0ec509533b6e9270136","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.5.1.tgz","fileCount":11,"integrity":"sha512-tVEU1TmhGIaKb+QciBsZ5RJHcGZxt3cmax8+1OBLjXMM3vJinOoObxYiAsQm8XXiUcMBxce8SGfp76BH8dOrNQ==","signatures":[{"sig":"MEYCIQDHJEUIgBvr3NT5+CgG/5lOu0/uguLr4VRYHlcbqF2nngIhANfECII0JgZ8p/BvY/JjOmBM9CnMFnBYd2dVap/tE8ih","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29600},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/f0ca03539d58c0752b198d37a2f1d0e1/aligntrue-file-utils-0.5.1.tgz","_integrity":"sha512-tVEU1TmhGIaKb+QciBsZ5RJHcGZxt3cmax8+1OBLjXMM3vJinOoObxYiAsQm8XXiUcMBxce8SGfp76BH8dOrNQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.5.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.5.1_1764561588608_0.0075114169656333996","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@aligntrue/file-utils","version":"0.5.2","license":"MIT","_id":"@aligntrue/file-utils@0.5.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"296b94dd651bc0bb39c889563acde2f03a1f0487","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.5.2.tgz","fileCount":11,"integrity":"sha512-ZpO9ORDexMv9r/IsLY6plqDRy4rKMWUbm9tt29+C3998ALmxXtQ62ZW1BVN06Ap5wFtFA8KnPK8fSqHtCvQ0NA==","signatures":[{"sig":"MEYCIQCINzWa5lZC6WiBx37Gb+bnO1K1p5Fb1Z2LDCxGaBBU9gIhAMQHJW9/74KiCUkBCjCxCCjaiA8u16qo101xlLBpxU0A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29600},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.5.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/b8eedf3d01b4cde7ea19d6667b57cfb0/aligntrue-file-utils-0.5.2.tgz","_integrity":"sha512-ZpO9ORDexMv9r/IsLY6plqDRy4rKMWUbm9tt29+C3998ALmxXtQ62ZW1BVN06Ap5wFtFA8KnPK8fSqHtCvQ0NA==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.5.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.5.2_1764614827650_0.7701379018479255","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@aligntrue/file-utils","version":"0.5.3","license":"MIT","_id":"@aligntrue/file-utils@0.5.3","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"62acbf6ae44114b4f2d6a545b98b2181373d48dd","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.5.3.tgz","fileCount":11,"integrity":"sha512-d/00RDvPoDmHU9isf4cgfo5yUM0PGGf3gx9ewPMf8L9PZ/qVcS5eaQQJG14NjdcfTmlaE9w20XmSgd7hO6/PlQ==","signatures":[{"sig":"MEYCIQDtEr/KkeeZjVYvYL4sPsjnpbLUpjW/qxK4VsNE2AAJqAIhANVC+lqoK+2SGz5Zy2gqmVDVWhUiMJIk+XiNq/jngmCg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29600},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.5.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/7d4a68d29edcd914b636914c57443362/aligntrue-file-utils-0.5.3.tgz","_integrity":"sha512-d/00RDvPoDmHU9isf4cgfo5yUM0PGGf3gx9ewPMf8L9PZ/qVcS5eaQQJG14NjdcfTmlaE9w20XmSgd7hO6/PlQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.5.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.5.3_1764655690806_0.4416697224838759","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@aligntrue/file-utils","version":"0.6.0","license":"MIT","_id":"@aligntrue/file-utils@0.6.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"2eefb39eea334749de4f447898c2ab65b1403363","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.6.0.tgz","fileCount":11,"integrity":"sha512-fKK6D1RQTuJlk9U5Gf1VbmvTaVR1WWLMBgIHe7S6JfOM5avdeXNfPXj+EkWL5pM3P2suQjaOzi5u4LsxvLJfvA==","signatures":[{"sig":"MEUCIQDi9WoFPveYdhBPdKIx0Fqeo9VJzdtFruykQ+LvmGrJUQIgWdxqfldxEYduAlC6golc7AkS+miyq8u/9WBcHWncdDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/1e45f38cb1dd8c2bededd641c204c293/aligntrue-file-utils-0.6.0.tgz","_integrity":"sha512-fKK6D1RQTuJlk9U5Gf1VbmvTaVR1WWLMBgIHe7S6JfOM5avdeXNfPXj+EkWL5pM3P2suQjaOzi5u4LsxvLJfvA==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.6.0_1764728486773_0.3725433278100765","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@aligntrue/file-utils","version":"0.6.1","license":"MIT","_id":"@aligntrue/file-utils@0.6.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"d93600154d149471bb75c092d92ad2e2f487bc76","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.6.1.tgz","fileCount":11,"integrity":"sha512-icbBm0jVBHhd2bUCBsKlnfJJUc8Uvd63RUOCpKmEfgn3IMKYAJunqX1PocphqUu0n2+4LThhIu9xyzTWzHjyVg==","signatures":[{"sig":"MEYCIQDdUe78QM/yFsVhfGwF5AQG4Kzqic3f3BStN/pExXgh7gIhALxE9sfoksPabefiL0YIADHVFCv+S1t/vb6owmcvHnNn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.6.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/0127517479935762e005162e1384838e/aligntrue-file-utils-0.6.1.tgz","_integrity":"sha512-icbBm0jVBHhd2bUCBsKlnfJJUc8Uvd63RUOCpKmEfgn3IMKYAJunqX1PocphqUu0n2+4LThhIu9xyzTWzHjyVg==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.6.1_1764746787478_0.21368714222958607","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@aligntrue/file-utils","version":"0.7.0","license":"MIT","_id":"@aligntrue/file-utils@0.7.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"e9e27073685263d87143921706e0a9608fb0093e","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.7.0.tgz","fileCount":11,"integrity":"sha512-4/AgMyRPNGdUeA0/1SDN+ouH4Evn/2prnCqsxRky+cRHHrIwEw3E1IXrIIB6sfHjvrqrjQS6YWKMs8aAOFK1jQ==","signatures":[{"sig":"MEQCIF9ss+hTp9BL8gdbzQiy96ez6aV1cM0e+QMTLH005EjvAiAXhpBWvcRfHIngq/oRCew4j5+9nzrIS6m8VkOY1uLKgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.7.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/0b5210480471d29004e32f8e493bb964/aligntrue-file-utils-0.7.0.tgz","_integrity":"sha512-4/AgMyRPNGdUeA0/1SDN+ouH4Evn/2prnCqsxRky+cRHHrIwEw3E1IXrIIB6sfHjvrqrjQS6YWKMs8aAOFK1jQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.7.0_1764795553712_0.1952875446842619","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@aligntrue/file-utils","version":"0.7.1","license":"MIT","_id":"@aligntrue/file-utils@0.7.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"25547232960757dbe38bf77be28287284c0a13e6","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.7.1.tgz","fileCount":11,"integrity":"sha512-EUgxjTkhN1lg6OhZT8A7qr00ghyzZ0MKCawNbppNqR30m8SMqn9iVo+KOaZRDiwNs06Av8lLE+nUt1gKYw32jw==","signatures":[{"sig":"MEQCIBhFItonJMA869aNimRWgSzD6L1YrOcXaCptdkBnWi4vAiBpo2xmyQj17/UoBefoIhp1DpOMTgAZXSr9S6ANUbmfWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.7.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/454247524a0b5702b71b57664503ff64/aligntrue-file-utils-0.7.1.tgz","_integrity":"sha512-EUgxjTkhN1lg6OhZT8A7qr00ghyzZ0MKCawNbppNqR30m8SMqn9iVo+KOaZRDiwNs06Av8lLE+nUt1gKYw32jw==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.7.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.7.1_1764826251289_0.6026542046215106","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@aligntrue/file-utils","version":"0.7.2","license":"MIT","_id":"@aligntrue/file-utils@0.7.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"0a14a4e76155cde5e589f58b0c6b019ea04d6e11","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.7.2.tgz","fileCount":11,"integrity":"sha512-c62nZdGWQl0TXMRakOJCob48NgXFG2OrQtWP2hSLt2LeApEdNrpLnTBhn1ku0j2sgPu0Nqpbt3P6aDXdMYC8OQ==","signatures":[{"sig":"MEUCIQDhx66jgvnovHc0mTIWMoHK9BCi0IGdKADFfBUphd71lgIgYz4YkLMVl3wf8oj4UKzZ3JLuGzdR4gvhx3YNXcuwCVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.7.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/6bede1830f3748e2af7202e29a01c99c/aligntrue-file-utils-0.7.2.tgz","_integrity":"sha512-c62nZdGWQl0TXMRakOJCob48NgXFG2OrQtWP2hSLt2LeApEdNrpLnTBhn1ku0j2sgPu0Nqpbt3P6aDXdMYC8OQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.7.2_1764834652849_0.7482445820409938","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@aligntrue/file-utils","version":"0.7.3","license":"MIT","_id":"@aligntrue/file-utils@0.7.3","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"78f66ddffd2d37d5e231d869f55a649e904de6f9","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.7.3.tgz","fileCount":11,"integrity":"sha512-0AFx3KNhzDiDaf7HuMKJdk4joQH6sG9mUIi1y6moXLzjb/otza8ux9AbrlQKgu28BpCWjBsnnz5lQJxRhP8S8g==","signatures":[{"sig":"MEUCIEH8AxrIeWsYr2FYIdWgDlDTN478c5a8v3UYrhllEG2yAiEA0vd1n2idIwczHFy1bS4Cj5CAK7zs0cQeLupk8vKoPNY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.7.3.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/e6a1687fc3ea408579cfe77d48ee86d9/aligntrue-file-utils-0.7.3.tgz","_integrity":"sha512-0AFx3KNhzDiDaf7HuMKJdk4joQH6sG9mUIi1y6moXLzjb/otza8ux9AbrlQKgu28BpCWjBsnnz5lQJxRhP8S8g==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.7.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.7.3_1764837661566_0.3634437803401318","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@aligntrue/file-utils","version":"0.8.0","license":"MIT","_id":"@aligntrue/file-utils@0.8.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"21561f46d0e3843aabfc95ee28eb8efe850134c8","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.8.0.tgz","fileCount":11,"integrity":"sha512-0SlKNTmEu9W7twDW485npClkr++ck74jUjJj7jUJ7d6zBKu/AJKLZtrKzmcbK6adK8UK7QGdEOxF/5Ni3Q3dYA==","signatures":[{"sig":"MEYCIQCUXhxtMQewwz42IsEpNXhcETqJz3cW6YWxwQPAH95spgIhAKswxU4sREBtYUnKllkuNBYqYBJt1UWNpp7hfRsJs9cb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.8.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/ba75ba0ad7de0b7cb475edd23011356f/aligntrue-file-utils-0.8.0.tgz","_integrity":"sha512-0SlKNTmEu9W7twDW485npClkr++ck74jUjJj7jUJ7d6zBKu/AJKLZtrKzmcbK6adK8UK7QGdEOxF/5Ni3Q3dYA==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.8.0_1765010067500_0.6719644978467547","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@aligntrue/file-utils","version":"0.8.1","license":"MIT","_id":"@aligntrue/file-utils@0.8.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"662e3aaafd021b1084968043a4dda025494c7702","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.8.1.tgz","fileCount":11,"integrity":"sha512-NISH+bBA3MGo/gOdajLrbUJ4SK2i36AOdPjesLivpbhYHQoRxxmkanDvUjymR9+8kLdfMmnfBebouhyp6KJRhg==","signatures":[{"sig":"MEUCIFT2ik0mLGfWPNyjp6SAKSUvE9TQYlbksads7SUAM01/AiEAhSZJDwPxvuNdM/Gv2myiyzwgw3V8jn7wSSsACPInxpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.8.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/3c1fd05b479238866ca776a77334d0c1/aligntrue-file-utils-0.8.1.tgz","_integrity":"sha512-NISH+bBA3MGo/gOdajLrbUJ4SK2i36AOdPjesLivpbhYHQoRxxmkanDvUjymR9+8kLdfMmnfBebouhyp6KJRhg==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.8.1_1765012210673_0.5274530410866438","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@aligntrue/file-utils","version":"0.8.2","license":"MIT","_id":"@aligntrue/file-utils@0.8.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"3aed0301e3c9c896be1e362ebb8a2b6c179f2fbe","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.8.2.tgz","fileCount":11,"integrity":"sha512-jfKHf4Vy3vKjnIekGgk96MxQVx4pJZc5bokv33rxeoX68tHH56l008mWX3ZN1HHN/ZokXJM35SMQ0uGnWgRpdg==","signatures":[{"sig":"MEQCIBJuZAHo0PRfsAOB9HRXL4AUGbvzZZ2ogSLV9vTKgmJIAiAJbhC4w3aPseoY6XNIs+OJ6Q+/X5osYr9Kp2S9PZQcQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.8.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/9fcbb7820ee22d4248b292c5611d18f4/aligntrue-file-utils-0.8.2.tgz","_integrity":"sha512-jfKHf4Vy3vKjnIekGgk96MxQVx4pJZc5bokv33rxeoX68tHH56l008mWX3ZN1HHN/ZokXJM35SMQ0uGnWgRpdg==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.8.2_1765044629462_0.548983796877291","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@aligntrue/file-utils","version":"0.9.0","license":"MIT","_id":"@aligntrue/file-utils@0.9.0","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"eb9e9e0a0d19162287232ec20f557c97d212a6b4","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.9.0.tgz","fileCount":11,"integrity":"sha512-3ByGVZzPfen9qsBnSo3w37vD43E5WWAqjWN1g9xXfl3IccNUSlZ1ptnMCo6u7qSsFBqnNmAk/S9ukvg1PJDK8g==","signatures":[{"sig":"MEYCIQCGUEuqLMABhcb6Im+JOSebtoEoyiWu5Mlo7lKMSQMY2AIhAO5HAfd6CWM6JgK/UlnNiaePQMjIOHf7m48Qsyy69A1g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.9.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/7d6874d8f4a48136721d76fff2d23d1a/aligntrue-file-utils-0.9.0.tgz","_integrity":"sha512-3ByGVZzPfen9qsBnSo3w37vD43E5WWAqjWN1g9xXfl3IccNUSlZ1ptnMCo6u7qSsFBqnNmAk/S9ukvg1PJDK8g==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.9.0_1765431251002_0.502021172278134","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@aligntrue/file-utils","version":"0.9.1","license":"MIT","_id":"@aligntrue/file-utils@0.9.1","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"6a402efcfbfa1283b94ba955b7e5bc39dfe03cbe","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.9.1.tgz","fileCount":11,"integrity":"sha512-I9ONBFAiu8UA4CSZSSldX5n8a6LjVxutebeAzArCVdin0w6YQs2Dbke5/3DTWKeFCo8T97M/pTMExsLlNr1hvQ==","signatures":[{"sig":"MEUCICTbsRYos70bSRLvllfnjEm7Y+/FsdkW8pv/VwACmuH2AiEA320OetaX9bFzgu2ViJX3aI5t0foYSzNOIdMVXLzJHCI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.9.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/7fa87e8e7cd7c1844123f01c534ef518/aligntrue-file-utils-0.9.1.tgz","_integrity":"sha512-I9ONBFAiu8UA4CSZSSldX5n8a6LjVxutebeAzArCVdin0w6YQs2Dbke5/3DTWKeFCo8T97M/pTMExsLlNr1hvQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.9.1_1765941799289_0.7074805838110632","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@aligntrue/file-utils","version":"0.9.2","license":"MIT","_id":"@aligntrue/file-utils@0.9.2","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"dist":{"shasum":"7d490a5079e124e1b94b3f3bd8d3eefd796d6f4e","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.9.2.tgz","fileCount":11,"integrity":"sha512-kmmLtV1HVIJFLx7JAPXRTMsydbbUl67FD3r7XWw6ajuAa4EUJLC8BkGNAn/wQ4xt8f5KgT1cQ9LDlIub/W2lkQ==","signatures":[{"sig":"MEYCIQCGfo2d0/yFmUAcHPccnLoTDrZGRMysiHkd1stv7fTnEgIhAIaWtLsw2+2XIHrOjzsHsk22zrvTRlEs5oe3FGwAr3M6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32436},"main":"./dist/index.js","type":"module","_from":"file:aligntrue-file-utils-0.9.2.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/6eadb6f503bc1ea8afc744c1ace33535/aligntrue-file-utils-0.9.2.tgz","_integrity":"sha512-kmmLtV1HVIJFLx7JAPXRTMsydbbUl67FD3r7XWw6ajuAa4EUJLC8BkGNAn/wQ4xt8f5KgT1cQ9LDlIub/W2lkQ==","_npmVersion":"11.6.0","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@aligntrue/schema":"0.9.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{},"_npmOperationalInternal":{"tmp":"tmp/file-utils_0.9.2_1765949038587_0.17323766340329905","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@aligntrue/file-utils","version":"0.9.3","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"dependencies":{"@aligntrue/schema":"0.9.3"},"devDependencies":{},"license":"MIT","engines":{"node":">=20"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit"},"_id":"@aligntrue/file-utils@0.9.3","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","_integrity":"sha512-YgqPXkqQHiZInaLbL8t0Iel8QKgjBhlYQ0kH0n6orp2WbQ1lgSp5qeZco+N9VbOaaebU9srW8EBP0PJT370qkA==","_resolved":"/private/var/folders/qn/kzm93p190txc1rg4_9b9nx340000gn/T/6cb38a430a26f832ad3bc67935cf392a/aligntrue-file-utils-0.9.3.tgz","_from":"file:aligntrue-file-utils-0.9.3.tgz","_nodeVersion":"23.11.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-YgqPXkqQHiZInaLbL8t0Iel8QKgjBhlYQ0kH0n6orp2WbQ1lgSp5qeZco+N9VbOaaebU9srW8EBP0PJT370qkA==","shasum":"7ef2f9b3ad4fe98b6d977da32a6ee1d8a0a4f9f3","tarball":"https://registry.npmjs.org/@aligntrue/file-utils/-/file-utils-0.9.3.tgz","fileCount":11,"unpackedSize":32436,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGdtyH8GmQgVBNv5dHX3w48Q8QFx01UFoPbriZJl3+FvAiAsDRxWCPD3FFyVqeDsOciFH3hYOJFRk+cpi2jDBlUgFw=="}]},"_npmUser":{"name":"gmays","email":"gabriel.mays@gmail.com"},"directories":{},"maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-utils_0.9.3_1766196143009_0.1851552760052524"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-28T16:28:46.815Z","modified":"2025-12-20T02:02:23.346Z","0.1.0-alpha.1":"2025-10-28T15:49:14.461Z","0.1.0-alpha.2":"2025-10-28T16:28:47.074Z","0.1.1-alpha.3":"2025-11-07T01:14:16.002Z","0.1.1-alpha.4":"2025-11-12T17:42:44.930Z","1.0.0-alpha.5":"2025-11-15T05:36:29.912Z","1.0.0-alpha.6":"2025-11-17T03:58:45.867Z","0.1.0":"2025-11-17T05:10:28.726Z","0.1.1":"2025-11-17T05:17:14.435Z","0.2.0":"2025-11-18T05:09:20.461Z","0.2.1":"2025-11-19T05:22:43.589Z","0.2.2":"2025-11-19T14:16:18.611Z","0.2.3":"2025-11-20T17:26:48.948Z","0.3.0":"2025-11-23T05:53:10.599Z","0.4.0":"2025-11-27T14:09:11.915Z","0.4.1":"2025-11-29T02:03:20.345Z","0.5.0":"2025-11-30T20:06:56.041Z","0.5.1":"2025-12-01T03:59:48.815Z","0.5.2":"2025-12-01T18:47:07.871Z","0.5.3":"2025-12-02T06:08:11.009Z","0.6.0":"2025-12-03T02:21:26.962Z","0.6.1":"2025-12-03T07:26:27.678Z","0.7.0":"2025-12-03T20:59:13.886Z","0.7.1":"2025-12-04T05:30:51.499Z","0.7.2":"2025-12-04T07:50:52.993Z","0.7.3":"2025-12-04T08:41:01.697Z","0.8.0":"2025-12-06T08:34:27.643Z","0.8.1":"2025-12-06T09:10:10.840Z","0.8.2":"2025-12-06T18:10:29.605Z","0.9.0":"2025-12-11T05:34:11.134Z","0.9.1":"2025-12-17T03:23:19.434Z","0.9.2":"2025-12-17T05:23:58.736Z","0.9.3":"2025-12-20T02:02:23.152Z"},"license":"MIT","description":"**Safe, atomic file operations for the AlignTrue ecosystem.**","maintainers":[{"name":"gmays","email":"gabriel.mays@gmail.com"}],"readme":"# @aligntrue/file-utils\n\n**Safe, atomic file operations for the AlignTrue ecosystem.**\n\nThis package provides infrastructure utilities for safe file operations with atomic writes, checksum tracking, and rollback support.\n\n## Purpose\n\nAlignTrue needs deterministic, safe file operations across all components. This package centralizes file operation logic to ensure:\n\n- **Atomicity:** Writes use temp + rename pattern (no partial states)\n- **Safety:** Checksums detect manual edits before overwriting\n- **Reliability:** Backup and rollback support for error recovery\n- **Cross-platform:** Works identically on Windows, Linux, macOS\n\n## Architecture\n\n```\n@aligntrue/file-utils (infrastructure)  ← This package\n   ↓\n@aligntrue/core + @aligntrue/exporters + CLI (consumers)\n```\n\nThis package has **zero workspace dependencies** - it's pure Node.js utilities.\n\n## Features\n\n### Atomic File Writer\n\nSafely write files with temp + rename pattern:\n\n```typescript\nimport { AtomicFileWriter } from \"@aligntrue/file-utils\";\n\nconst writer = new AtomicFileWriter();\n\n// Write atomically (uses temp file + rename)\nawait writer.write(\"/path/to/file.txt\", \"content\");\n\n// Creates parent directories automatically\nawait writer.write(\"/path/nested/deep/file.txt\", \"content\");\n\n// Tracks checksums to detect manual edits\nwriter.trackFile(\"/path/to/file.txt\");\nawait writer.write(\"/path/to/file.txt\", \"new content\"); // Works\n\n// Manually edit the file externally...\n// Next write will throw error (overwrite protection)\nawait writer.write(\"/path/to/file.txt\", \"more content\"); // Throws!\n```\n\n### Checksum Utilities\n\nCompute SHA-256 checksums for files and content:\n\n```typescript\nimport {\n  computeFileChecksum,\n  computeContentChecksum,\n} from \"@aligntrue/file-utils\";\n\n// From file\nconst hash1 = computeFileChecksum(\"/path/to/file.txt\");\n\n// From string\nconst hash2 = computeContentChecksum(\"content string\");\n\n// Both produce hex SHA-256 (64 characters)\nconsole.log(hash1); // \"a1b2c3d4...\"\n```\n\n### Directory Creation\n\nEnsure directories exist before writing:\n\n```typescript\nimport { ensureDirectoryExists } from \"@aligntrue/file-utils\";\n\n// Creates all parent directories if needed\nensureDirectoryExists(\"/path/to/nested/dir\");\n\n// Idempotent (safe to call multiple times)\nensureDirectoryExists(\"/existing/dir\");\n\n// Validates path is actually a directory\nensureDirectoryExists(\"/path/to/file.txt\"); // Throws if file exists\n```\n\n## Usage\n\n### Basic Write\n\n```typescript\nimport { AtomicFileWriter } from \"@aligntrue/file-utils\";\n\nconst writer = new AtomicFileWriter();\nawait writer.write(\".aligntrue/config.yaml\", yamlContent);\n```\n\n### Overwrite Protection\n\n```typescript\nconst writer = new AtomicFileWriter();\n\n// Initial write\nawait writer.write(\"file.txt\", \"original\");\n\n// Track for overwrite protection\nwriter.trackFile(\"file.txt\");\n\n// Safe: checksum matches\nawait writer.write(\"file.txt\", \"updated\");\n\n// User manually edits file.txt...\n\n// Detected: checksum mismatch\ntry {\n  await writer.write(\"file.txt\", \"more updates\");\n} catch (err) {\n  console.log(\"File was manually edited!\");\n}\n```\n\n### Custom Checksum Handler\n\nFor interactive prompts (used by CLI):\n\n```typescript\nconst writer = new AtomicFileWriter();\n\nwriter.setChecksumHandler(\n  async (filePath, lastChecksum, currentChecksum, interactive, force) => {\n    if (force) {\n      return \"overwrite\"; // --force flag\n    }\n\n    if (interactive) {\n      // Prompt user: [o]verwrite [k]eep [a]bort\n      const answer = await promptUser();\n      return answer; // 'overwrite' | 'keep' | 'abort'\n    }\n\n    return \"abort\"; // CI mode: fail on mismatch\n  },\n);\n\nawait writer.write(\"file.txt\", \"new content\", { interactive: true });\n```\n\n### Rollback on Failure\n\n```typescript\nconst writer = new AtomicFileWriter();\n\ntry {\n  await writer.write(\"file1.txt\", \"content1\");\n  await writer.write(\"file2.txt\", \"content2\");\n  await writer.write(\"file3.txt\", \"invalid\"); // Fails\n} catch (err) {\n  writer.rollback(); // Restores file1 and file2 from backups\n  throw err;\n}\n```\n\n## Security Guarantees\n\n### Atomic Writes (Temp + Rename)\n\nAll writes use this pattern:\n\n1. Write content to `/path/file.txt.tmp`\n2. Atomically rename `/path/file.txt.tmp` → `/path/file.txt`\n3. No partial states visible to other processes\n\n**Why:** Operating systems guarantee atomic rename operations. If power fails during write, you either get the old file or the new file—never a corrupted partial file.\n\n### Checksum Tracking\n\nDetects manual edits between writes:\n\n1. Write file, compute SHA-256 hash, store in memory\n2. Before next write, recompute hash and compare\n3. If mismatch, throw error (or call custom handler)\n\n**Why:** Prevents accidentally overwriting user edits in source files. Critical for detecting manual changes between syncs.\n\n### Backup and Rollback\n\nBefore overwriting, creates `.backup` files:\n\n1. Read original content\n2. Write to `/path/file.txt.backup`\n3. Proceed with atomic write\n4. Delete backup on success\n\nIf any operation fails, `rollback()` restores from backups.\n\n**Why:** Allows recovery from multi-file write failures. If writing 10 files and #7 fails, rollback restores files 1-6.\n\n## API Reference\n\n### `AtomicFileWriter`\n\n```typescript\nclass AtomicFileWriter {\n  // Write content atomically with optional overwrite protection\n  async write(\n    filePath: string,\n    content: string,\n    options?: {\n      interactive?: boolean;\n      force?: boolean;\n    },\n  ): Promise<void>;\n\n  // Set custom handler for checksum mismatches\n  setChecksumHandler(\n    handler: (\n      filePath: string,\n      lastChecksum: string,\n      currentChecksum: string,\n      interactive: boolean,\n      force: boolean,\n    ) => Promise<\"overwrite\" | \"keep\" | \"abort\">,\n  ): void;\n\n  // Track existing file's checksum for overwrite protection\n  trackFile(filePath: string): void;\n\n  // Get checksum record for a file\n  getChecksum(filePath: string): ChecksumRecord | undefined;\n\n  // Rollback writes by restoring from backups\n  rollback(): void;\n\n  // Clear all tracked checksums and backups\n  clear(): void;\n}\n\ninterface ChecksumRecord {\n  filePath: string;\n  checksum: string;\n  timestamp: string;\n}\n```\n\n### Utility Functions\n\n```typescript\n// Compute SHA-256 checksum of file contents\nfunction computeFileChecksum(filePath: string): string;\n\n// Compute SHA-256 checksum of string content\nfunction computeContentChecksum(content: string): string;\n\n// Create directory and all parents (idempotent)\nfunction ensureDirectoryExists(dirPath: string): void;\n```\n\n## Testing\n\nRun tests:\n\n```bash\npnpm test\n```\n\nTests cover:\n\n- Atomic writes and temp file cleanup\n- Checksum computation and tracking\n- Overwrite protection and manual edit detection\n- Backup creation and rollback\n- Directory creation and validation\n- Cross-platform path handling\n\n## Why Separate Package?\n\nFile utilities are infrastructure primitives used by:\n\n- `@aligntrue/core` (sync engine writes)\n- `@aligntrue/exporters` (all 32 exporters)\n- `@aligntrue/cli` (config and lockfile writes)\n- Future: `@aligntrue/importers`, MCP server, etc.\n\nKeeping them separate:\n\n1. Avoids circular dependencies\n2. Makes utilities easily testable in isolation\n3. Enables reuse across all packages\n4. Zero workspace dependencies = true infrastructure layer\n\n## License\n\nMIT\n","readmeFilename":"README.md"}