{"_id":"@varlock/expo-integration","_rev":"7-2315bd2f7e77af1680f9780b207a969b","name":"@varlock/expo-integration","dist-tags":{"latest":"1.2.1"},"versions":{"0.0.0":{"name":"@varlock/expo-integration","version":"0.0.0","author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@0.0.0","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"9a9a47cfdb488118a0275e28a2cc69d6ccbd4354","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-0.0.0.tgz","fileCount":1,"integrity":"sha512-MYmEy0s7VBqX8mnKcfJswerUYZv8DnMfvHSIvjEFyZPU/Ym7+U5qDV8FkGGKk5DlwenWIZMEo0jt8BeXMX8qag==","signatures":[{"sig":"MEUCIEK9ir2cK3WaBs3pkCPFS50XGO7S99q/B2tlqE10icAvAiEAzahv7ymN0zbSeKvmmabpoUfdWwcq+TKn55hMjdFiT00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412},"_from":"file:varlock-expo-integration-0.0.0.tgz","_npmUser":{"name":"theo","email":"theozero@gmail.com"},"_resolved":"/private/var/folders/tb/sqfkxrfs1mz2n2n_c2rpsthc0000gn/T/8a94b281e90f0ef81153de22dbf09293/varlock-expo-integration-0.0.0.tgz","_integrity":"sha512-MYmEy0s7VBqX8mnKcfJswerUYZv8DnMfvHSIvjEFyZPU/Ym7+U5qDV8FkGGKk5DlwenWIZMEo0jt8BeXMX8qag==","repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"11.6.2","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"25.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/expo-integration_0.0.0_1773274551291_0.3642245573197782","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@varlock/expo-integration","version":"0.0.1","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@0.0.1","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"6df5067d3126ec93fa91eba32a8caf1453da3961","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-0.0.1.tgz","fileCount":14,"integrity":"sha512-V+VjSaHWPkjyBzta9xCNpjoYR2g0AuqMuopWJ/qQUjXSKa0QSpn1igVfYo2/UNUm4Ca8/VOANUKucoYaDa1xmQ==","signatures":[{"sig":"MEQCIFldhPAlT5G1l7ijbDHuEVVo0rW7EjX5yWChryxftOP7AiA6Z68ZJ/OqVReomR1Sfwu70RDyqh9xfLyZBfPyzW5rBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@0.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53932},"main":"dist/babel-plugin.cjs","type":"module","types":"dist/babel-plugin.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./babel-plugin":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./metro-config":{"types":"./dist/metro-config.d.ts","import":"./dist/metro-config.js","require":"./dist/metro-config.cjs"}},"gitHead":"47c28f36810bccd1c84bcd1f96b74a6a884f625e","scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:ci":"vitest --run"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87fdd254-4a7b-4a29-8f7e-25f7b5527a74"}},"repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"11.12.1","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","varlock":"^0.7.0","@babel/core":"^7.29.0","@types/node":"25.3.2"},"peerDependencies":{"varlock":"^0.7.0","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/expo-integration_0.0.1_1774981003758_0.7527114527266185","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@varlock/expo-integration","version":"1.0.0","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@1.0.0","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"02ed8e46972608c2efe0f88e1bcb2c8c55aada7b","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-1.0.0.tgz","fileCount":14,"integrity":"sha512-Fv7n6UuycNf7OztMGTSCn9BgSyhqMGkTwPpSlJ0LB/i4sr/NTxzWVfwcbQu1H7v9IxbFT3m7pvfbI5iTrm4wTA==","signatures":[{"sig":"MEUCIQDqF70Jvy7nQKu3Kg9iBtT1fwklpsXB5dDYKrtD8puxwQIgcKkIdPqyAHBqcC+dHCdNC1R+TDI9chywF5YFrr8jGVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":53957},"main":"dist/babel-plugin.cjs","type":"module","_from":"file:/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.0.0.tgz","types":"dist/babel-plugin.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./babel-plugin":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./metro-config":{"types":"./dist/metro-config.d.ts","import":"./dist/metro-config.js","require":"./dist/metro-config.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:ci":"vitest --run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87fdd254-4a7b-4a29-8f7e-25f7b5527a74"}},"_resolved":"/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.0.0.tgz","_integrity":"sha512-Fv7n6UuycNf7OztMGTSCn9BgSyhqMGkTwPpSlJ0LB/i4sr/NTxzWVfwcbQu1H7v9IxbFT3m7pvfbI5iTrm4wTA==","repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"11.13.0","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","varlock":"^1.0.0","@babel/core":"^7.29.0","@types/node":"25.3.2"},"peerDependencies":{"varlock":"^1.0.0","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/expo-integration_1.0.0_1777497450417_0.11261149623931699","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@varlock/expo-integration","version":"1.1.0","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@1.1.0","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"4871396c0b6a45ec0b26ce32e8566300e293359b","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-1.1.0.tgz","fileCount":14,"integrity":"sha512-n1bvVu22TaosHplGi2FS6AJB11cXiLaky6Kleh8Yxf3mkoGru7rfmsCwhoQRgVQTXaVjhR9aKTiVttn+EAbjoA==","signatures":[{"sig":"MEUCIElpf5j1+J3otKQTGorNaGx9sGqSK8bt5rrs36kd9qSpAiEA5j6vt9sbUwnEsc9oIcwOpBw7fkOKtJib1lM+lnHWF/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55233},"main":"dist/babel-plugin.cjs","type":"module","_from":"file:/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.1.0.tgz","types":"dist/babel-plugin.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./babel-plugin":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./metro-config":{"types":"./dist/metro-config.d.ts","import":"./dist/metro-config.js","require":"./dist/metro-config.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:ci":"vitest --run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87fdd254-4a7b-4a29-8f7e-25f7b5527a74"}},"_resolved":"/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.1.0.tgz","_integrity":"sha512-n1bvVu22TaosHplGi2FS6AJB11cXiLaky6Kleh8Yxf3mkoGru7rfmsCwhoQRgVQTXaVjhR9aKTiVttn+EAbjoA==","repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"11.13.0","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","varlock":"^1.1.0","@babel/core":"^7.29.0","@types/node":"25.3.2"},"peerDependencies":{"varlock":"^1.1.0","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/expo-integration_1.1.0_1777694312489_0.6417115008890562","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@varlock/expo-integration","version":"1.1.1","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@1.1.1","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"9084f83daf3a24e77ab0855cd84e7076cb8eb7a2","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-1.1.1.tgz","fileCount":14,"integrity":"sha512-yBvz9Ok1nRt/uV5rat+QoyPhOK1ETG7g8/aYZ1r30hGZ6HeAZDpWXj7UuzgV7DX+2yXSGiCBVk4YIPUkFkk1Xg==","signatures":[{"sig":"MEYCIQC7knTT8xt/k4XogPDgEDHsIU+TZbNcKGFP4EQULS8q7gIhAIg+DT8xGPb8tVdzUtF51Jb2u6MwG1XwK7NzY5hGApCK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":55577},"main":"dist/babel-plugin.cjs","type":"module","_from":"file:/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.1.1.tgz","types":"dist/babel-plugin.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./babel-plugin":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./metro-config":{"types":"./dist/metro-config.d.ts","import":"./dist/metro-config.js","require":"./dist/metro-config.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:ci":"vitest --run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87fdd254-4a7b-4a29-8f7e-25f7b5527a74"}},"_resolved":"/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.1.1.tgz","_integrity":"sha512-yBvz9Ok1nRt/uV5rat+QoyPhOK1ETG7g8/aYZ1r30hGZ6HeAZDpWXj7UuzgV7DX+2yXSGiCBVk4YIPUkFkk1Xg==","repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"11.16.0","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"24.16.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","varlock":"^1.5.0","@babel/core":"^7.29.0","@types/node":"25.3.2"},"peerDependencies":{"varlock":"^1.5.0","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/expo-integration_1.1.1_1780526929995_0.9260312790647574","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@varlock/expo-integration","version":"1.2.0","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","_id":"@varlock/expo-integration@1.2.0","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"homepage":"https://github.com/dmno-dev/varlock#readme","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"dist":{"shasum":"f96a1490436e74a67fb2b83d2fda6f6ea82e546d","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-1.2.0.tgz","fileCount":14,"integrity":"sha512-7PzIt1SHWV4uPkYbaYAa8uEoFrmpBQMtLAVYAJbgOnsJy/6HDjbfzVxaGr24n6paanf5K8/CrBBa9CFgjyT0Wg==","signatures":[{"sig":"MEQCIGHa7ZdBQ2m5Si0+OnrJxLx/yqnt+Uuok+xK3GbMq6sRAiAnuzIQXdpMBeuEo8RS4GFxgA8XPHR/2V0GQYQRc9KXrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60880},"main":"dist/babel-plugin.cjs","type":"module","_from":"file:/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.2.0.tgz","types":"dist/babel-plugin.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./babel-plugin":{"types":"./dist/babel-plugin.d.ts","import":"./dist/babel-plugin.js","require":"./dist/babel-plugin.cjs"},"./metro-config":{"types":"./dist/metro-config.d.ts","import":"./dist/metro-config.js","require":"./dist/metro-config.cjs"}},"scripts":{"dev":"tsup --watch","test":"vitest","build":"tsup","test:ci":"vitest --run","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:87fdd254-4a7b-4a29-8f7e-25f7b5527a74"}},"_resolved":"/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.2.0.tgz","_integrity":"sha512-7PzIt1SHWV4uPkYbaYAa8uEoFrmpBQMtLAVYAJbgOnsJy/6HDjbfzVxaGr24n6paanf5K8/CrBBa9CFgjyT0Wg==","repository":{"url":"git+https://github.com/dmno-dev/varlock.git","type":"git","directory":"packages/integrations/expo"},"_npmVersion":"12.0.1","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^4.0.18","varlock":"^1.14.0","@babel/core":"^7.29.0","@types/node":"25.3.2"},"peerDependencies":{"varlock":"^1.14.0","@babel/core":">=7"},"_npmOperationalInternal":{"tmp":"tmp/expo-integration_1.2.0_1785227359487_0.21674547869879923","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@varlock/expo-integration","description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","version":"1.2.1","repository":{"type":"git","url":"git+https://github.com/dmno-dev/varlock.git","directory":"packages/integrations/expo"},"type":"module","main":"dist/babel-plugin.cjs","types":"dist/babel-plugin.d.cts","exports":{".":{"import":{"types":"./dist/babel-plugin.d.mts","default":"./dist/babel-plugin.mjs"},"require":{"types":"./dist/babel-plugin.d.cts","default":"./dist/babel-plugin.cjs"}},"./babel-plugin":{"import":{"types":"./dist/babel-plugin.d.mts","default":"./dist/babel-plugin.mjs"},"require":{"types":"./dist/babel-plugin.d.cts","default":"./dist/babel-plugin.cjs"}},"./metro-config":{"import":{"types":"./dist/metro-config.d.mts","default":"./dist/metro-config.mjs"},"require":{"types":"./dist/metro-config.d.cts","default":"./dist/metro-config.cjs"}}},"scripts":{"dev":"tsdown --watch","build":"tsdown","test":"vitest","test:ci":"vitest --run","typecheck":"tsc --noEmit"},"keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"author":{"name":"dmno-dev"},"license":"MIT","engines":{"node":">=22"},"peerDependencies":{"varlock":"^1.17.1","@babel/core":">=7"},"devDependencies":{"@babel/core":"^7.29.0","@types/node":"25.3.2","tsdown":"^0.22.14","varlock":"^1.17.1","vitest":"^4.0.18"},"_id":"@varlock/expo-integration@1.2.1","bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"homepage":"https://github.com/dmno-dev/varlock#readme","_integrity":"sha512-8So5Aj6F4lqk2QB3k12od0gPMGmQn7VtxmnuLsS2ve9Pa9JNXXB9vMVFqhsu3iPZ+rMm1wApEotzvUsa4nsA8w==","_resolved":"/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.2.1.tgz","_from":"file:/home/runner/work/varlock/varlock/packages/integrations/expo/varlock-expo-integration-1.2.1.tgz","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-8So5Aj6F4lqk2QB3k12od0gPMGmQn7VtxmnuLsS2ve9Pa9JNXXB9vMVFqhsu3iPZ+rMm1wApEotzvUsa4nsA8w==","shasum":"67992ca2534a227b6e23a4242d3ef6b988e20b27","tarball":"https://registry.npmjs.org/@varlock/expo-integration/-/expo-integration-1.2.1.tgz","fileCount":14,"unpackedSize":58180,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@varlock%2fexpo-integration@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB3jPH8ep7bIrH5fjT85hBNKZOyzS6Llk5vhr+079dO4AiA7oPVlD4ryMxtAHfAbcPniqm3VxOn4huJph3HFq9LFYw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ea757b04-15df-4420-8183-7ba6b92639ff"}},"directories":{},"maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-integration_1.2.1_1787637769156_0.7039163767040353"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-12T00:15:51.198Z","modified":"2026-08-25T06:02:49.587Z","0.0.0":"2026-03-12T00:15:51.432Z","0.0.1":"2026-03-31T18:16:43.903Z","1.0.0":"2026-04-29T21:17:30.562Z","1.1.0":"2026-05-02T03:58:32.621Z","1.1.1":"2026-06-03T22:48:50.144Z","1.2.0":"2026-07-28T08:29:19.620Z","1.2.1":"2026-08-25T06:02:49.288Z"},"bugs":{"url":"https://github.com/dmno-dev/varlock/issues"},"author":{"name":"dmno-dev"},"license":"MIT","homepage":"https://github.com/dmno-dev/varlock#readme","keywords":["varlock","expo","react-native","babel","babel-plugin","env",".env","environment variables","env vars","config","security","validation","leak protection","varlock-integration"],"repository":{"type":"git","url":"git+https://github.com/dmno-dev/varlock.git","directory":"packages/integrations/expo"},"description":"Expo/React Native Babel plugin to use varlock for .env file loading - adds validation, type-safety, and extra security features","maintainers":[{"name":"philmillman","email":"philmillman@gmail.com"},{"name":"theo","email":"theozero@gmail.com"}],"readme":"# @varlock/expo-integration\n\n[![npm version](https://img.shields.io/npm/v/@varlock/expo-integration.svg)](https://npmx.dev/package/@varlock/expo-integration) [![GitHub stars](https://img.shields.io/github/stars/dmno-dev/varlock.svg?style=social&label=Star)](https://github.com/dmno-dev/varlock) [![license](https://img.shields.io/npm/l/@varlock/expo-integration.svg)](https://github.com/dmno-dev/varlock/blob/main/LICENSE)\n\nThis package helps you integrate [varlock](https://varlock.dev) into an [Expo](https://expo.dev) or [React Native CLI](https://github.com/react-native-community/cli) project.\n\nIt provides a **Babel plugin** for compile-time replacement of `ENV.xxx` references, and a **Metro config wrapper** that initializes the `ENV` proxy at runtime for server routes (Expo Router `+api` files).\n\nCompared to the default Expo behavior, this package provides:\n\n- Validation of your env vars against your `.env.schema`\n- Optional declarative loading of env var values via [plugins](https://varlock.dev/guides/plugins/)\n- Type-generation and type-safe env var access with built-in docs\n- Redaction of sensitive values from application logs\n- Leak detection and prevention at build time (sensitive values are never inlined into your bundle)\n- More flexible multi-env handling\n\nSee [our docs site](https://varlock.dev/integrations/expo/) for complete installation and usage instructions.\n\n## Installation\n\n```bash\nnpm install --save-dev @varlock/expo-integration varlock\n# or\nyarn add --dev @varlock/expo-integration varlock\n# or\nbun add --dev @varlock/expo-integration varlock\n```\n\n## Setup\n\nBoth Expo and React Native CLI projects use the same Babel plugin and Metro wrapper — only the Babel preset and Metro base config differ.\n\n### Expo\n\n#### Babel plugin\n\n```js\n// babel.config.js\nmodule.exports = {\n  presets: ['babel-preset-expo'],\n  plugins: [\n    require('@varlock/expo-integration/babel-plugin'),\n  ],\n};\n```\n\n#### Metro config\n\n```js\n// metro.config.js\nconst { getDefaultConfig } = require('expo/metro-config');\nconst { withVarlockMetroConfig } = require('@varlock/expo-integration/metro-config');\n\nconst config = getDefaultConfig(__dirname);\n\nmodule.exports = withVarlockMetroConfig(config);\n```\n\n### React Native CLI\n\n#### Babel plugin\n\n```js\n// babel.config.js\nmodule.exports = {\n  presets: ['module:@react-native/babel-preset'],\n  plugins: [\n    require('@varlock/expo-integration/babel-plugin'),\n  ],\n};\n```\n\n#### Metro config\n\n```js\n// metro.config.js\nconst { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');\nconst { withVarlockMetroConfig } = require('@varlock/expo-integration/metro-config');\n\nconst config = mergeConfig(getDefaultConfig(__dirname), {});\n\nmodule.exports = withVarlockMetroConfig(config);\n```\n\nThe Metro wrapper automatically:\n\n- Installs a custom resolver so that `import { ENV } from 'varlock/env'` works (Metro doesn't support `package.json` `\"exports\"` subpaths by default).\n- Initializes the varlock `ENV` proxy in the main Metro process so that sensitive values are available at runtime in [Expo Router API routes](https://docs.expo.dev/router/reference/api-routes/) (`+api` files).\n\n> **Why is this needed?** Metro forks worker processes for Babel transforms. The Babel plugin runs in those workers, but server routes are evaluated in the main Metro process. The Metro config wrapper ensures the environment is initialized in the correct process.\n\n## Usage\n\nImport and use `ENV` in your code:\n\n```ts\nimport { ENV } from 'varlock/env';\n\n// Non-sensitive — replaced at compile time\nconst apiUrl = ENV.API_URL;\n```\n\nIn Expo Router server routes (`+api` files), both sensitive and non-sensitive values are accessible:\n\n```ts\n// app/secret+api.ts\nimport { ENV } from 'varlock/env';\n\nexport function GET() {\n  // Sensitive values work at runtime in server routes\n  const key = ENV.SECRET_KEY;\n  return Response.json({ authorized: !!key });\n}\n```\n\n## How it works\n\n1. When Metro starts, `withVarlockMetroConfig` calls `varlock load` to resolve all environment variables and initializes the `ENV` proxy in the main process.\n2. The Babel plugin runs in Metro's worker processes and replaces non-sensitive `ENV.xxx` member expressions with their resolved literal values at compile time.\n3. Sensitive vars remain as `ENV.xxx` references in the compiled code. In `+api` server routes they resolve at runtime via the proxy. In native code they throw.\n\n## Sensitive values\n\nValues marked with `@sensitive` in your `.env.schema` are **never** inlined into the JavaScript bundle. This prevents secrets from being embedded in code that ships to user devices.\n\n### In native code (client)\n\nSensitive values are **not available** in native app code. React Native apps run entirely on the device — there is no server to keep secrets safe. Accessing a sensitive value in native code will **throw at runtime**.\n\nThe Babel plugin also emits a **build-time warning** when it detects a sensitive `ENV.xxx` reference in a non-server file, so you can catch these issues before they reach production. In React Native CLI projects, **all** app code is client-side — there are no server routes where sensitive values can be accessed at runtime.\n\nIf you need a value in native code, reconsider whether it should be marked `@sensitive`. API keys for public services (e.g. a Maps API key) are typically non-sensitive and can be safely inlined.\n\n### In server routes (+api files, Expo only)\n\nSensitive values **are** accessible at runtime via the `ENV` proxy in [Expo Router API routes](https://docs.expo.dev/router/reference/api-routes/). These files run server-side in the Metro process where `withVarlockMetroConfig` has initialized the environment.\n\n> **Note:** Expo Router pages are universal — they render on both server (SSR) and client. This means you cannot access sensitive values directly in page components like you can in Next.js Server Components. Use `+api` server routes for any logic that requires secrets.\n\n## Security\n\n- Sensitive values (marked `@sensitive`) are never statically inlined into the bundle.\n- `patchGlobalConsole()` is called automatically to redact sensitive values from logs.\n- A build-time warning is emitted when sensitive values are referenced in native (non-server) code.\n- Accessing a sensitive value in client code throws at runtime, preventing accidental secret exposure.\n","readmeFilename":"README.md"}