{"_id":"@brettdh/standard-version-expo","_rev":"2-623a85a621987b01ae5a548cfb483117","name":"@brettdh/standard-version-expo","dist-tags":{"latest":"1.1.1"},"versions":{"1.1.0":{"name":"@brettdh/standard-version-expo","version":"1.1.0","description":"Automatic Expo versioning with Standard Version","keywords":["expo","standard","version","release","bycedric"],"author":{"name":"Cedric van Putten","email":"me@bycedric.com","url":"https://bycedric.com"},"license":"MIT","homepage":"https://github.com/brettdh/standard-version-expo#readme","repository":{"type":"git","url":"git+https://github.com/brettdh/standard-version-expo.git"},"bugs":{"url":"https://github.com/brettdh/standard-version-expo/issues"},"main":"manifest/version.js","scripts":{"test":"jest","lint":"eslint ./src ./test --ext ts,tsx","build":"tsc","clean":"git clean -xdf build","release":"standard-version","prerelease":"npm run clean && npm run build"},"dependencies":{"@expo/config":"^3.1.2","@expo/json-file":"^8.2.10","@types/plist":"^3.0.2","detect-indent":"^6.0.0","detect-newline":"^3.1.0","globby":"^11.0.0","plist":"^3.0.1","semver":"^7.3.2"},"devDependencies":{"@types/jest":"^25.2.1","@types/node":"^13.13.0","@types/semver":"^7.1.0","@typescript-eslint/eslint-plugin":"^2.28.0","@typescript-eslint/parser":"^2.28.0","eslint":"^6.8.0","eslint-plugin-jest":"^23.8.2","jest":"^25.3.0","standard-version":"^7.1.0","ts-jest":"^25.4.0","typescript":"^3.8.3"},"gitHead":"6687a53c032cca50a071df131a8962eb0f78465d","_id":"@brettdh/standard-version-expo@1.1.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kJj4hTmiu5/DEhhDI3dGiHdUvxQXYSiNMD2i6InceZyIkBFJfRywt1nq+CKFJa0jyRU3/CRXq991687ur5AWhA==","shasum":"d6b284bb9491ba0329b884a979e0b7964abeacef","tarball":"https://registry.npmjs.org/@brettdh/standard-version-expo/-/standard-version-expo-1.1.0.tgz","fileCount":43,"unpackedSize":34510,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBy3NCRA9TVsSAnZWagAASDEP/jiMAlDsJ6yoR0O34lDJ\nSgw1HIL4g2mzffZejul+vi44kbJDJFhGCAPo0Xmfh55CBfY8BEiFTaNyY2sW\nyzYXIhxKqeUY7Kz4GYILfp7cLeos6sgx9dyG9+uUeL3aDYIu+6p+kG9ElGYw\nNP6tCHpJnjVpxglgX+5cSqL5Xxrauzf7DmnAGkDRFcqRP2kearcQqArtj639\nEceOzeJET2jqY6aoBI8yPvMFspVyJ0q1DrS7Kv+fiERfscnbvE0wzt5bdptN\n/eKW/BX4iikh0VmHNJ1UzRGnTZZUhbWO7+WeBNtYhp93dN5Mk0kOHfDVbYrR\naUpaSalK+UlNard4LQ7Zw09Z9t65BWl1oVuoROF0EB99s8GOdWithZas3ktN\n9WmUxuI9Q07YZn6/AM5Id2qsuhqx0jAB0AGZZDVOUgcavuw/TCMN9lowT+7l\nv+a0rpfli4LbvYwm6gaR2WbPuKIZMjLIWY5i2WKymY40bCG36cDHJwOmPaKT\nTZZumSRYHtG0EAMbz7rTMnFGyuNr6wAkit4VtzajMC3oKLUxWO74R6RpBlNh\ngIPNC0hE4KBSMY1o+HWyy6onWSa5gKVJ/7+lsJoHyR2v/yqMO5gU/NZKr0e0\nnexz2/zrUrLLnFLZVysg9LR7icnuMPKKQvkD3qzSUGrGW8S0rpUkUsaXTpWs\nMwH6\r\n=X3PK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICNJ1PgTz8ub/BemdJQ7QPOv9SThW2mEjiz86gH1lyRCAiEA45SYk0y6h2FbGIh4GkJSTAy5Yeh6lTlIqz2NS3jutLk="}]},"_npmUser":{"name":"brettdh","email":"brett.higgins@gmail.com"},"directories":{},"maintainers":[{"name":"brettdh","email":"brett.higgins@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/standard-version-expo_1.1.0_1611083213468_0.5985986016713718"},"_hasShrinkwrap":false},"1.1.1":{"name":"@brettdh/standard-version-expo","version":"1.1.1","description":"Automatic Expo versioning with Standard Version","keywords":["expo","standard","version","release","bycedric"],"author":{"name":"Cedric van Putten","email":"me@bycedric.com","url":"https://bycedric.com"},"license":"MIT","homepage":"https://github.com/brettdh/standard-version-expo#readme","repository":{"type":"git","url":"git+https://github.com/brettdh/standard-version-expo.git"},"bugs":{"url":"https://github.com/brettdh/standard-version-expo/issues"},"main":"manifest/version.js","scripts":{"test":"jest","lint":"eslint ./src ./test --ext ts,tsx","build":"tsc","clean":"git clean -xdf build","release":"standard-version","prerelease":"npm run clean && npm run build"},"dependencies":{"@expo/config":"^3.1.2","@expo/json-file":"^8.2.10","@types/plist":"^3.0.2","detect-indent":"^6.0.0","detect-newline":"^3.1.0","globby":"^11.0.0","plist":"^3.0.1","semver":"^7.3.2"},"devDependencies":{"@types/jest":"^25.2.1","@types/node":"^13.13.0","@types/semver":"^7.1.0","@typescript-eslint/eslint-plugin":"^2.28.0","@typescript-eslint/parser":"^2.28.0","eslint":"^6.8.0","eslint-plugin-jest":"^23.8.2","jest":"^25.3.0","standard-version":"^7.1.0","ts-jest":"^25.4.0","typescript":"^3.8.3"},"gitHead":"88e1a88f494894e6ed890a8743cf6819248104b2","_id":"@brettdh/standard-version-expo@1.1.1","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-nnS15nDSgcM3r50RgrKqL8puFUKPfjdzxB9Zma6drjpd7GSieDyx1kCdrAzeiCzuTyEdU7Yec/YS1ieAB6x4Qg==","shasum":"d63482ab87e3e33d7c0bc880b34080c9eea2b6ae","tarball":"https://registry.npmjs.org/@brettdh/standard-version-expo/-/standard-version-expo-1.1.1.tgz","fileCount":43,"unpackedSize":34868,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgF3QCCRA9TVsSAnZWagAA/RIP/AsgKXAH31UoMmj+3x9Y\nOFp8qbKzxPiOWAZIS7USmgmhe2ssKCQB4f9YQ+4JPqu8bPbp0+hxwPI4qf48\nrByc/i/Z1GTh2l++KIuANPz6Ell15JWyvHk6vQYLR31EoIIqtUKdKqEISBCi\nrD/01baUSSqv/FBG8RSipNk3zz2rLas38DwrfcEgiIP1fpifBjjJPUbdiJTU\nkLoZ3SyBXNxBGZvdCBTuXD4px8bW+DLbjmdokNWZbfKauVIhQu/J4uyvwQK3\ntDx2kMVn9/NNWJnr7wVLbPdrxJEHw45nsRqf8CbOdnMtWyulnJbga8r5EN0p\n0QRUl8CCxhBXkeU2eoOG4uRLR6n39qVvH3powFfv5TOZSKnGfHq3bxxqilFX\nxHN3OL8kvKQEZJLf06CAXh7WYrMQOba4XMplo/ZiD0ZawsvTqYivy8Bo5/0Y\nHlHSNbSvCXnR0/G47oScVJaaaxkkoOY6Vguq9WMJvRxdPFpcoxvELEh3XxYq\nuiQfK8BbjZa8sXNlbKV7/P/Yy83Qs+8vyDA06JUPUW0heKbvSut1oMPxPUvH\nY2YLLsu4P+8qAe/DgaotWzBaQMvAqFmTuDAHWRBecJRgjWPoGAFqCpbEKJe4\nJHDKAFqjog3408aABKxbP3GD/glcHEd6PZeF2KmoxoJPSnzOOLR6+oPzbtyS\ng6HV\r\n=1DzT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC9kre9x9N6QeKs285rBeiHeokh0muxVVDGoBxFuXdWgAIhALNloDTCYVZE8l4DV/ns+xfrKIceSR6EhFczA/W2F9GO"}]},"_npmUser":{"name":"brettdh","email":"brett.higgins@gmail.com"},"directories":{},"maintainers":[{"name":"brettdh","email":"brett.higgins@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/standard-version-expo_1.1.1_1612149762113_0.06241104127155461"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-19T19:06:53.403Z","1.1.0":"2021-01-19T19:06:53.610Z","modified":"2022-04-04T20:31:34.345Z","1.1.1":"2021-02-01T03:22:42.241Z"},"maintainers":[{"name":"brettdh","email":"brett.higgins@gmail.com"}],"description":"Automatic Expo versioning with Standard Version","homepage":"https://github.com/brettdh/standard-version-expo#readme","keywords":["expo","standard","version","release","bycedric"],"repository":{"type":"git","url":"git+https://github.com/brettdh/standard-version-expo.git"},"author":{"name":"Cedric van Putten","email":"me@bycedric.com","url":"https://bycedric.com"},"bugs":{"url":"https://github.com/brettdh/standard-version-expo/issues"},"license":"MIT","readme":"<div align=\"center\">\n    <h1>Standard Version Expo</h1>\n    <p>Automatic <a href=\"https://github.com/expo/expo\">Expo</a> versioning with <a href=\"https://github.com/conventional-changelog/standard-version\">Standard Version</a></p>\n    <sup>\n        <a href=\"https://github.com/expo-community/standard-version-expo/releases\">\n            <img src=\"https://img.shields.io/github/release/expo-community/standard-version-expo/all.svg?style=flat-square\" alt=\"releases\" />\n        </a>\n        <a href=\"https://github.com/expo-community/standard-version-expo/actions\">\n            <img src=\"https://img.shields.io/github/workflow/status/expo-community/standard-version-expo/CI/master.svg?style=flat-square\" alt=\"builds\" />\n        </a>\n        <a href=\"https://dev.to/bycedric/simplify-expo-releases-with-standard-version-2f4o\">\n            <img src=\"https://img.shields.io/badge/guide-dev.to-lightgrey?style=flat-square\" alt=\"guide\" />\n        </a>\n    </sup>\n    <br />\n\t\t<br />\n    <br />\n    <pre>npm i -D standard-version@next standard-version-expo</pre>\n</div>\n\n## What's inside?\n\nStandard version is a tool to automate the versioning of your project using semver and [conventional commits][link-conventional].\nThis package includes some helpful bumpers to update the Expo manifest automatically.\nWith these bumpers you can automate updating the [`version`][link-expo-version], [Android `versionCode`][link-expo-android], and/or [iOS `buildNumber`][link-expo-ios].\nYou should be able to automate versioning of your app by using a single command, like:\n\n```bash\n$ npx standard-version --release-as minor\n```\n\n> If you receive an error like `Invalid Version: undefined`, make sure your `package.json` has a starting `version`.\n\n## Getting started\n\nIt's recommended to install both Standard Version and this package as `devDependency`.\nYou can do this with the npm command listed at the top of this read me.\nAfter you installed the packages, we need to [configure Standard Version using any of the configuration methods listed here][link-standard-version].\nHere is an example configuration that updates the version, Android `versionCode`, and iOS `buildNumber` using the recommended approaches.\n\n```js\n// .versionrc.js\nmodule.exports = {\n  bumpFiles: [\n    {\n      filename: 'package.json',\n    },\n    {\n      filename: 'app.json',\n      updater: require.resolve('standard-version-expo'),\n    },\n    {\n      filename: 'app.json',\n      updater: require.resolve('standard-version-expo/android'),\n    },\n    {\n      filename: 'app.json',\n      updater: require.resolve('standard-version-expo/ios'),\n    }\n  ]\n};\n```\n\nIf you're using the [bare workflow][link-bare-workflow], you'll need a couple\nmore bumpers to keep your native project config files in sync:\n\n```js\n// .versionrc.js\nconst sdkVersion = '37.0.0';  // or pull from app.json\n\nmodule.exports = [\n  // ...\n  {\n    filename: 'ios/<YourAppName>/Info.plist',\n    updater: require.resolve('standard-version-expo/ios/native/app-version'),\n  },\n  {\n    filename: 'ios/<YourAppName>/Info.plist',\n    updater: require.resolve('standard-version-expo/ios/native/buildnum/increment'),\n  },\n  {\n    filename: 'android/app/build.gradle',\n    updater: require.resolve('standard-version-expo/android/native/app-version'),\n  },\n  {\n    filename: 'android/app/build.gradle',\n    updater: require.resolve('standard-version-expo/android/native/buildnum/code')(sdkVersion),\n  },\n];\n```\n\nTo test if your configuration works as expected, you can run standard version in dry mode.\nThis shows you what will happen, without actually applying the versions and tags.\n\n```bash\n$ npx standard-version --dry-run\n```\n\n## Usage\n\nStandard Version's version bumpers are pretty simple; each bump only updates a single file using a single updater.\nThis package exposes multiple kinds of updaters, for different areas of the manifest.\nYou can \"compose\" your own set of `bumpFiles` entries to suit your needs.\n\nupdater             | example      | description\n---                 | ---          | ---\n`<root>`            | `3.2.1`      | _alias of `manifest/version`_\n`manifest`          | `3.2.1`      | _alias of `manifest/version`_\n`manifest/version`  | `3.2.1`      | Replace `expo.version` with the exact calculated semver. (**recommended**)\n`android`           | `360030201`  | _alias of `android/code`_\n`android/code`      | `350010000`  | Replace `expo.android.versionCode` with the [method described by Maxi Rosson][link-version-code]. (**recommended**)\n`android/increment` | `8`          | Replace `expo.android.versionCode` with an incremental version.\n`ios`               | `3.2.1`      | _alias of `ios/version`_\n`ios/code`          | `360030201`  | Replace `expo.ios.buildNumber` with the [method described by Maxi Rosson][link-version-code].\n`ios/increment`     | `9`          | Replace `expo.ios.buildNumber` with an incremental version.\n`ios/version`       | `3.2.1`      | Replace `expo.ios.buildNumber` with the exact calculated semver. (**recommended**)\n\nAnd for the native build config files:\n\nupdater                         | example       | file path                      | description\n---                             | ---           | ---                            | ---\n`native/ios/app-version`        | `3.2.1`       | `ios/<YourAppName>/Info.plist` | Replace `CFBundleShortVersionString` with the exact calculated semver.\n`native/ios/buildnum/code`      | `36030201`    | `ios/<YourAppName>/Info.plist` | Replace `CFBundleVersion` with the [method described by Maxi Rosson][link-version-code].\n`native/ios/buildnum/increment` | `8`           | `ios/<YourAppName>/Info.plist` | Replace `CFBundleVersion` with an incremental version.\n`native/ios/buildnum/version`   | `3.2.1`       | `ios/<YourAppName>/Info.plist` | Replace `CFBundleVersion` with the exact calculated semver. (**recommended**)\n`native/android/app-version`        | `3.2.1`       | `android/app/build.gradle` | Replace `versionName` with the exact calculated semver.\n`native/android/buildnum/code`      | `36030201`    | `android/app/build.gradle` | Replace `versionCode` with the [method described by Maxi Rosson][link-version-code]. (**recommended**)\n`native/android/buildnum/increment` | `8`           | `android/app/build.gradle` | Replace `versionCode` with an incremental version.\n\nNote that the `native/{ios,android}/buildnum/code` bumpers are only supported\nin `.versionrc.js` file, not in `.versionrc` or `.versionrc.json` files.\nSince a bumper only operates on one file, the Expo manifest is unavailable to\nthe bumper when it's operating on a native build config file. Because of this,\nyou must provide the Expo SDK version via javascript (see example above).\n\nHowever, this means that you can also use these bumpers with non-Expo React\nNative projects, and even plain Android projects, simply by supplying the\nminimum Android API level rather than the Expo SDK version.\n\n### Version code\n\nSemver is one of the most popular versioning methods; it generates a string with a syntax that even humans can read.\nUnfortunately, in Android, we are limited to use a numeric `versionCode` as version.\nThe version code uses an approach from [Maxi Rosson][link-version-code] to calculate a numeric value from semver.\nIt's a deterministic solution that removes some of the ambiguity of incremental build numbers, like security-patching old versions.\n\n> The method initially uses the Android minimum API level. For Expo, we replaced this with the major Expo SDK version.\n\n<div align=\"center\">\n    <br />\n    with :heart: <strong>byCedric</strong>\n    <br />\n</div>\n\n[link-conventional]: https://www.conventionalcommits.org/en/v1.0.0/\n[link-expo-android]: https://docs.expo.io/versions/latest/workflow/configuration#android\n[link-expo-ios]: https://docs.expo.io/versions/latest/workflow/configuration#ios\n[link-expo-version]: https://docs.expo.io/versions/latest/workflow/configuration#version\n[link-standard-version]: https://github.com/conventional-changelog/standard-version#configuration\n[link-version-code]: https://medium.com/@maxirosson/versioning-android-apps-d6ec171cfd82\n[link-bare-workflow]: https://docs.expo.io/introduction/managed-vs-bare/\n","readmeFilename":"README.md"}