{"_id":"expo-modules-cli","_rev":"12-f2ee2f3a90516bc9dd85665dee12ab5e","name":"expo-modules-cli","dist-tags":{"next":"0.3.0","latest":"0.4.0"},"versions":{"0.0.1":{"name":"expo-modules-cli","version":"0.0.1","author":"","license":"MIT","_id":"expo-modules-cli@0.0.1","maintainers":[{"name":"tsapeta","email":"npm@tsapeta.com"}],"dist":{"shasum":"c3335eb5f9b11fa85dc601d49ba3e5c4e1684367","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.0.1.tgz","fileCount":2,"integrity":"sha512-mFvFCGSc4X81iLkxEFekyASdMYRSzo8H/NP62Udi5JYQqUyIHsnNRxNLuP3A0cqSQ+3SkMW50YjsPjPbUmpCig==","signatures":[{"sig":"MEUCIAt2Q2bJY1rdzCttZv02vqZ1Ar59HlHab2cmzJeVcdfcAiEAwZoKYBLhCjcSaOqAMSlEZj/zokUdWP1hlp9GX6vt41o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1027},"main":"index.js","_npmUser":{"name":"tsapeta","email":"npm@tsapeta.com"},"_npmVersion":"11.17.0","description":"","directories":{},"_nodeVersion":"24.11.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.0.1_1789727342379_0.9802947347361834","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"expo-modules-cli","version":"0.2.0","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.2.0","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"59789c544dce8ab44249625a4f862dc07ea7762c","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.2.0.tgz","fileCount":28,"integrity":"sha512-1XXpgKQpWOuqO3GhMpJwPonG3XieZs9Op6MKeXQkNRea9QgwfdDfEcNTsN+o6t2CyrJHTEAfqu1uVyiuLjbF6Q==","signatures":[{"sig":"MEQCIGhVsqg3ZYN5zdQ4OwThruEU5i631Fxou8VGRrCZYS3XAiBml6KDqCK284UJHoJ8ppCgfvGFLGlnKxgGk0AAAPmaaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC1DhntKaDeT8UxUn+BptanqftClPqY85Y+iAmHJHMgaAiEAlxwXZafW+lTfWQ6fH4ESQH3o7KguFvcblxc5lfiX8d0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92472},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"commander":"^14.0.3","expo-modules-macros":"^0.14.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","expo-module-scripts":"56.0.6"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.2.0_1791032476101_0.47619973395908377","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"expo-modules-cli","version":"0.2.1","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.2.1","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"760ef3388e9e1ee5fe61499e1c7fcdfea366a8e0","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.2.1.tgz","fileCount":28,"integrity":"sha512-iD57y7dFfz851dfPn+eT3JjwoIFQF961N+C6RCYqvUlIc3pWzOqWtazdHOAgZl6hvK+Uc37utfc6Wn6gqBjSgA==","signatures":[{"sig":"MEQCIF7pVhobUIADzUK7banLC6MtVn7WcYJLUekl0oVUd0UkAiBOJXH1OWP7myv9Fzxi6uXhUQRq9/RYYzQe7ZcXs0jPKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDptBOEjyjFDfghDOYGH9JgaMpCG2ClElWxVT/XiD+0xQIgSQuRgjNCq7x+t/AfzxWwLtAn10p6DdJb2jC/CEbGtuA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92472},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"commander":"^14.0.3","expo-modules-macros":"^0.15.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","expo-module-scripts":"56.0.7"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.2.1_1791238828612_0.24787959980347396","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"expo-modules-cli","version":"0.2.2","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.2.2","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"8eba80cd4c0b09e8d15d50901bb3dca01434db99","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.2.2.tgz","fileCount":28,"integrity":"sha512-JX4HoO+Y/nT3TmUAcupQcQtwJ3a/dA8TyTtETi2wAk6H04hmja7Ej2yxe3m4dOwm1p4YBdUzxl0u4TxS2lr31g==","signatures":[{"sig":"MEUCIGex+a7vVv9gypWiQJBiFcgM7wdCqo/vDS51yJDmUbwZAiEA4laMdvSLXk7SfTnrUE8/JzSVw4GDF0EPzzZM2eoWHWM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAfenoSRFLHNCqSz64VGLSx3yQcXMvbysvbxzXyZ2YU2AiEAr/1l1xN2x3l5ryctTT/D1QlN42b4UDfxxNw89dis0B0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92475},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"commander":"^14.0.3","expo-modules-macros":"^0.16.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","@expo/internal-scripts":"58.0.1"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.2.2_1791882266762_0.7205625352184168","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"expo-modules-cli","version":"0.3.0","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.3.0","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"af399f7c125caa36dc261f42795dce2be55346cb","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.3.0.tgz","fileCount":31,"integrity":"sha512-ivjJ0FB71ipPBkWkUfyx4lq/do46TZa3xjBjKqpOzFBD0EAs9RQpoaZG27y8xGN/ZFs5ac28+435tWzpngYfvQ==","signatures":[{"sig":"MEQCICsJEIiyJb5TmoLun2H3CbEBvmeqQdBK9DfRQvGNRbpiAiBkWuM/Vt8K8ZvSKtS+iO57eKYMYpPHFedLPZkJLb0smQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFpEAoJXzilaoU/oJG8304e5Z5K9daCfAJNqhJCxYeFCAiEA6gqDQjl65PXwSbQ7W4DDexCZ74Aoz69P44ixqh/Xrko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98569},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"commander":"^14.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","expo-modules-macros":"0.20.0","@expo/internal-scripts":"58.0.2"},"peerDependencies":{"expo":"*"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.3.0_1792015537317_0.07056188942857466","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"expo-modules-cli","version":"0.3.1","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.3.1","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"ad7097966462e7fe50438b85cf8c5430122a56e9","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.3.1.tgz","fileCount":34,"integrity":"sha512-dRLz4GMRi6lETbE729xFVforu9VI2hQ+YLMtVXfukHMjm6KposDOlJGCdYoZpB6oLVMK/NShc1q9v/u4yr1dkA==","signatures":[{"sig":"MEQCIEjCkNnTEw0Xc0oKuDP+1smo7zxEaGzwpThiwsGWuzORAiB40msNGv/AWdOEeDEh+iHbXmlIJXMOhPkg5OEqTr44PA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB9A9O19oV2+FE5c05dG2GVGPxhweVlqj35DQeVJOZOsAiAQdP82wrjrJqrdr7FccpGl8F2LHRPjSuhOkd33IOTubw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102605},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"arg":"^5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","expo-modules-macros":"0.21.0","@expo/internal-scripts":"58.0.3"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.3.1_1792415996152_0.9620892305456101","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"expo-modules-cli","version":"0.3.2","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.3.2","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"82df9fbe17fe62e7bed836e9041e4c9eaefdffb1","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.3.2.tgz","fileCount":37,"integrity":"sha512-iSIZeNaqi5ku0H3pk2fAyIlM25TWveRr9Xcc+bIZSokhZ0ERLtT5Xc1qVZwszSo0GbXXEoA8zwiGnvaw1DydCQ==","signatures":[{"sig":"MEUCICif5+ZZ6jmCHv/WEN0KbmvM+OxPUUJlUnG6vNND6s/aAiEAxf0j14+/iX22Gz1NSfYSfmufVIKBwNNwf2guWL0hAgA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICRLia2jm1on1p0dBGd45ZfEXYjjRb21NxgN7V6NjQkjAiAdC/KbN5u14mAmX7+8suSH/U8BLG/mV6FkHCZPYfoczg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125399},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"arg":"^5.0.2","@babel/parser":"^7.20.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","@babel/types":"^7.20.0","expo-modules-macros":"0.22.0","@expo/internal-scripts":"58.0.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.3.2_1792797767029_0.5936117157812912","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"expo-modules-cli","version":"0.3.3","keywords":["cli","expo","expo-module"],"author":"650 Industries, Inc.","license":"MIT","_id":"expo-modules-cli@0.3.3","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","bugs":{"url":"https://github.com/expo/expo/issues"},"bin":{"expo-modules":"bin/expo-modules.js"},"dist":{"shasum":"54fa323560dc7eefa95b81e94596cbd2b6b03457","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.3.3.tgz","fileCount":37,"integrity":"sha512-nz+xyg5AM7eFYHKw3SAoBcyBLqPj7ff1+JZ/bIRsedBlJdDxXyWoIIgn8rB3pk9+2p1KBMsQ7TiORrI6iTJxdw==","signatures":[{"sig":"MEYCIQDQoSh8uhWHu8scLUqFxvcNM42WTFck3sY39kBNiZq7hAIhAK9a0aWWP+zkzoQDGpYNFX+YHqy3FPq42s08+G3wUOsh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDZ3I58TRWse3Q/B9mDswFLlvk4v5ZLxI/23BzzqPexgAiAggIz9tDNaVDM68y2Wv2gd0YYg/ErUy1ZJrDPbI4G45w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.3.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125594},"main":"build/index.js","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"dependencies":{"arg":"^5.0.2","@babel/parser":"^7.20.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","@babel/types":"^7.20.0","@expo/internal-scripts":"58.0.4"},"_npmOperationalInternal":{"tmp":"tmp/expo-modules-cli_0.3.3_1793103218466_0.6762241953261439","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"expo-modules-cli@0.4.0","bin":{"expo-modules":"bin/expo-modules.js"},"bugs":{"url":"https://github.com/expo/expo/issues"},"dist":{"shasum":"703d227e7d1b8851aa680a0567342fbca761717d","tarball":"https://registry.npmjs.org/expo-modules-cli/-/expo-modules-cli-0.4.0.tgz","fileCount":43,"integrity":"sha512-NuvnnEFL+UMuQSjykg5ZhV0oxkOww8exJbZh+75pFF7DJhE3kQtfnOd4Yq4G6PrkVnqbeuKsqf6zX8V9p65ZYw==","signatures":[{"sig":"MEYCIQDbHMQt+uTMaOI30aVX13QKp0Go3x+PErRiDUkUAcyZ+wIhAMBMcP+KRdqok150CUwdS/SegqJBOiAoFQTXj7aDjQ2o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCWOgpHTRLD6DbhPIuFXPvj2unNrKnOzMS6/r9T7ffGcgIhAMY3T/oQSXfPn5b9KaAoaz4A2FnfyKEUgKZ8pl/ZOH25"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/expo-modules-cli@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":142921},"main":"build/index.js","name":"expo-modules-cli","author":"650 Industries, Inc.","engines":{"node":"^22.13.0 || ^24.3.0 || ^26.0.0 || >=27.0.0"},"license":"MIT","scripts":{"lint":"oxlint --config oxlint.config.mjs .","test":"jest","build":"expo-build cjs:src","clean":"expo-module clean","format":"expo-module format","depscheck":"expo-module depscheck","typecheck":"tsc -p tsconfig.json","expo-module":"expo-module"},"version":"0.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"82ab1c90-98f8-4a08-ac1d-d0b5b3cd5b95"}},"homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","keywords":["cli","expo","expo-module"],"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","directories":{},"maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"dependencies":{"arg":"^5.0.2","@babel/parser":"^7.20.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/jest":"^30.0.0","@types/node":"^22.14.0","@babel/types":"^7.20.0","@expo/internal-scripts":"58.0.5"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/expo-modules-cli_0.4.0_1793201494530_0.2846105726744954"}}},"time":{"created":"2026-09-18T10:29:02.130Z","modified":"2026-10-28T15:31:35.117Z","0.0.1":"2026-09-18T10:29:02.522Z","0.2.0":"2026-10-03T13:01:16.207Z","0.2.1":"2026-10-05T22:20:28.707Z","0.2.2":"2026-10-13T09:04:26.853Z","0.3.0":"2026-10-14T22:05:37.411Z","0.3.1":"2026-10-19T13:19:56.224Z","0.3.2":"2026-10-23T23:22:47.136Z","0.3.3":"2026-10-27T12:13:38.576Z","0.4.0":"2026-10-28T15:31:34.614Z"},"bugs":{"url":"https://github.com/expo/expo/issues"},"author":"650 Industries, Inc.","license":"MIT","homepage":"https://github.com/expo/expo/tree/main/packages/expo-modules-cli#readme","keywords":["cli","expo","expo-module"],"repository":{"url":"https://github.com/expo/expo.git","type":"git","directory":"packages/expo-modules-cli"},"description":"Command-line tools for developing Expo modules.","maintainers":[{"name":"ide","email":"ide+npm@jameside.com"},{"name":"brentvatne","email":"brentvatne@gmail.com"},{"name":"expoadmin","email":"support@expo.io"},{"name":"exponent","email":"exponent.team@gmail.com"},{"name":"bycedric","email":"me@bycedric.com"},{"name":"kudochien","email":"ckchien@gmail.com"},{"name":"alanhughes","email":"hughesno1@gmail.com"},{"name":"tsapeta","email":"npm@tsapeta.com"},{"name":"expo-bot","email":"brent+expobotnpm@expo.io"},{"name":"philpl","email":"phil@kitten.sh"},{"name":"ccheever","email":"ccheever@gmail.com"},{"name":"szdziedzic","email":"sz.dziedz@gmail.com"},{"name":"wschurman","email":"wschurman@gmail.com"}],"readme":"<p>\n  <a href=\"https://docs.expo.dev/modules/\">\n    <img\n      src=\"../../.github/resources/expo-modules-cli.svg\"\n      alt=\"expo-modules-cli\"\n      height=\"64\" />\n  </a>\n</p>\n\nCommand-line tools for developing Expo modules, available as `expo-modules`.\n\n## Commands\n\nA command with a language prefix, such as `swift:`, uses the tools of that language and reads only its sources. A command without a prefix gives a result that doesn't depend on the native language.\n\n### `expo-modules generate-types [packageDir]`\n\nGenerates TypeScript types for the native API an Expo module exports to JavaScript. It scans the package's Swift sources for `@ExpoModule`, `@SharedObject`, `@Record`, and `@Union` types annotated with the Expo Modules macros, and for `Enumerable` enums, and writes them to one TypeScript file per package, `src/native.types.ts` by default, which the package compiles along with its other sources. Modules extend `NativeModule` and shared objects extend `SharedObject`, both imported from `expo`. The `@Event` declarations of a class become an exported `<Name>Events` type passed to its base class, the same shape hand-written modules use. A shared object without a `@JS init` gets a private constructor, since only native code creates its instances. `Enumerable` enums become TS enums with the Swift case names and raw values, and `@Union` types the union of their member types. A type nested in another type is declared under its own name, without the names of the types around it (`Encoding` for `DigestOptions.Encoding`). The command leaves the file untouched when it already holds the generated content, only replaces a file that starts with its own header, so it never overwrites a hand-written file, and removes such a file when the package no longer exports anything.\n\n```sh\nexpo-modules generate-types packages/expo-video\n```\n\nWrite the doc comments of the API in the generated file. On each run, the command reads the block comments (`/** ... */`) above each declaration and member, and writes each one back above the declaration or member with the same TypeScript name. A comment stays with its declaration when the declaration moves. An overload keeps its comment while its signature stays the same. The other overloads of a function match in order. New declarations get no comment. A file whose only changes are doc comments is still up to date for `--check` when each comment is directly above its declaration, at the same indentation. The command writes each comment in that place, so a file with comments placed differently, or one that a formatter changed, is out of date until the next run.\n\nThe command prints a warning in three cases:\n\n- A declaration with a comment is no longer generated, for example because it was removed or renamed. The command drops the comment and prints its text below the warning. If the declaration was renamed, add the comment to the new name.\n- A comment is not above any declaration or member, for example because it is inside a parameter list, at the end of a body, or after code on the same line. The command drops the comment and prints its text below the warning.\n- A member or one-line declaration with a comment changed. The command keeps the comment and warns on that run only, so check that the comment still describes the declaration.\n\nThe scanner is a macOS binary, so this command runs on macOS only. Support for Linux is planned.\n\nThe command scans with the `expo-modules-macros` version that the package's `expo-modules-core` depends on, the same version the iOS build compiles the macros with. It finds that version through the `expo` package, so `expo` must be installed in the package, which every Expo module has as a peer dependency.\n\nOptions:\n\n- `-o, --out <path>`: the TypeScript file to write, relative to the package directory. Defaults to `src/native.types.ts`.\n- `--scanner <path>`: path to the Expo Modules scanner executable. Defaults to the scanner that ships with the `expo-modules-macros` version that `expo-modules-core` depends on.\n- `--check`: verify that the file is up to date without writing it. Exits with code 1 when the file is missing, outdated, or no longer needed, so a CI job can catch a stale committed file.\n\nAfter writing, the command lists every declaration with its kind, TypeScript name, and the Swift file it came from, grouped by file. A Swift type the scanner cannot express in TypeScript renders as `unknown`, and the command prints a warning naming the Swift file and member so the gap is visible.\n\nThe scan skips `node_modules`, `Pods`, `.build`, and `.git`, and also test and example directories (`Tests`, `UITests`, `__tests__`, `__mocks__`, `example`, `examples`, `e2e`), whose sources are not part of the package's product. A package that only declares modules in such directories, like the test fixtures in `expo-modules-core`, therefore generates nothing.\n\n### `expo-modules swift:expand <path...>`\n\nPrints the code that the Expo Modules macros generate for Swift sources, as \"Expand Macro\" does in Xcode, but in a terminal and without a build. A path is a `.swift` file or a directory. In a directory, only the files that use one of the macros are expanded, and the same directories as in `generate-types` are skipped. The command prints the expanded source to stdout and the macro diagnostics to stderr, in the compiler's `<file>:<line>:<column>: error: <message>` format. It exits with code 1 when there is an error.\n\n```sh\nexpo-modules swift:expand ios/HapticsModule.swift\nexpo-modules swift:expand --symbol HapticsModule.impactAsync ios/HapticsModule.swift\n```\n\n`--symbol` limits the output to one declaration. A type (`HapticsModule`, `HapticsModule.ImpactStyle`) prints the expanded type and the extensions that its macros add. A member (`HapticsModule.impactAsync`) prints its type with only that member, so the generated code is the code for that member.\n\nThe macros read only the syntax tree, so the expansion is what the compiler gets. Two things can differ: the names that a macro makes unique, and the conformances that a type inherits from somewhere else. Errors that need type checking still need a build.\n\n### `expo-modules swift:check [path...]`\n\nChecks Swift sources for the errors and warnings of the Expo Modules macros, without a build. It takes the same paths as `swift:expand`, and checks the current directory when there is none. It prints only the diagnostics and a summary, and exits with code 1 when there is an error, so a CI job or a coding agent can check a module before an Xcode build.\n\n```sh\nexpo-modules swift:check\nexpo-modules swift:check --symbol HapticsModule.impactAsync ios\n```\n\nBoth commands use the `expo-modules-macros` version that the package's `expo-modules-core` depends on, as `generate-types` does, and need version 0.27.0 or later. They find it from the first path.\n\nOptions of both commands:\n\n- `--symbol <name>`: only a type or a member, and only its diagnostics. Repeatable.\n- `--json`: print a JSON report with the expansions and diagnostics instead of text. The exit code is then 0 also when there is an error.\n- `--scanner <path>`: path to the Expo Modules executable. Defaults to the one that ships with the `expo-modules-macros` version that `expo-modules-core` depends on.\n\n## Contributing\n\nContributions are very welcome! Please refer to guidelines described in the [contributing guide](https://github.com/expo/expo#contributing).\n","readmeFilename":""}