{"_id":"@dankreiger/validate-expo-config","_rev":"1-a49378323f25f8f92e1bc6248a58d1fd","name":"@dankreiger/validate-expo-config","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.1":{"name":"@dankreiger/validate-expo-config","version":"1.0.1","description":"Tools for validating Expo app configurations.","keywords":["expo","tools","config","validation","zod"],"homepage":"https://githubc.com/dankreiger/validate-expo-config#readme","license":"ISC","author":{"name":"Dan Kreiger"},"main":"dist/index.js","unpkg":"dist/index.global.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"scripty","commit":"scripty","commit:protect":"scripty","dev":"scripty","docs":"scripty","format":"scripty","lint":"scripty","release":"scripty","size":"scripty","size:analyze":"scripty"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"dependencies":{"deepmerge":"^4.2.2","zod":"^3.20.2"},"devDependencies":{"@commitlint/cli":"^17.3.0","@commitlint/config-conventional":"^17.3.0","@commitlint/prompt-cli":"^17.3.0","@expo/config-types":"^47.0.0","@semantic-release/changelog":"^6.0.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^8.0.7","@semantic-release/npm":"^9.0.1","@size-limit/preset-small-lib":"^8.1.0","@size-limit/webpack":"^8.1.0","@size-limit/webpack-why":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.47.1","@typescript-eslint/parser":"^5.47.1","cz-conventional-changelog":"^3.3.0","docs-ts":"^0.7.0","eslint":"^8.31.0","lefthook":"^1.2.6","prettier":"^2.8.1","rimraf":"^3.0.2","scripty":"^2.1.1","semantic-release":"^19.0.5","size-limit":"^8.1.0","tsup":"^6.5.0","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"gitHead":"ed6d3638ed9991b44adf745834bc68b88e380076","_id":"@dankreiger/validate-expo-config@1.0.1","_nodeVersion":"18.12.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-TFuNaesC/39ybAVakdvVESgJApNVuKLZ+EDHYhTdKIJNhXq6k0gd7eaFFqeiC/W8mmHihKoqwp7T6mUl4y/Qag==","shasum":"ead285c5d250cb24de5f7dee99dc42ba115fda41","tarball":"https://registry.npmjs.org/@dankreiger/validate-expo-config/-/validate-expo-config-1.0.1.tgz","fileCount":99,"unpackedSize":701782,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEobNHrwPdAolrRMhrSOT5pb6TotPMFWPvemh7pTslZiAiEAwQ4NhbNAkzQTvl88phO94+Apy34j4fkgJ9JGlERG5vs="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsIwtACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpyLxAAlRNRuSleCFxcCjCSuJdko1y2eDvffdC/d4MTV5Z1KjvsPr42\r\nogYxWOL3B6QxfWXMUU/BWNXYsp2ZBcoqIUF0Q0Z0+AJ1uW/4O+Zjcy51pdS2\r\nPXSPzdU3AJnUDynSfyAvgns/NT9W6p4mjI6Csw4GFTv+PquZgFXvrqNTbteT\r\nvIc/VNsO917gvq6iPNXrTh9rm5hqTcREnZO4aPLWT3K9fqO3uYQh1s45gaye\r\nnYoIXKLUbyHvBjj3fMo0G/GoqoO6vY3ViHnPH+PjWCu4ts1TZTAwq1Bpgl05\r\nGJPPJyF6NhA8axeKSTDxe4Jm0IqkE9rcQVyrnWYgTk9fjXYP8b2dxKIR58BH\r\nOseLcAE3tfhFSCqi9Sg4dP8MGXpM+XXoHRwg9zIeQjJURv0vC6vnp+2sQV+6\r\nyP4rwG2hHF8KPmn7J7kTJv2j5K03NEplnq3Ftogkg8a4D5Xle47Xugo61T/M\r\nj641CyLxtqXBUh1XW/ML+4R7t4AqNudxZDpSvy1thOJ0XZHcGWW3ayKpcrPX\r\nAk6b9JhZFYiiHGbBMvLcE/DF5NrKPbUexMUZ+EuXdq8dKPJFkEHA4tSZnZPy\r\niIApNBtqvJ7DsXDKoMQ+V1qzTIGPL9DdcEGKmgQSKNVQrxXzSN6nPdbkVx1T\r\nVpiMFo6kJFLu2lGWbHM89yrgDOC3utD/kSc=\r\n=cpSY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dankreiger","email":"dan@dankreiger.com"},"directories":{},"maintainers":[{"name":"dankreiger","email":"dan@dankreiger.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-expo-config_1.0.1_1672514605037_0.033278483593177643"},"_hasShrinkwrap":false},"1.0.2":{"name":"@dankreiger/validate-expo-config","version":"1.0.2","description":"Tools for validating Expo app configurations.","keywords":["expo","tools","config","validation","zod"],"homepage":"https://githubc.com/dankreiger/validate-expo-config#readme","license":"ISC","author":{"name":"Dan Kreiger"},"main":"dist/index.js","unpkg":"dist/index.global.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"scripty","commit":"scripty","commit:protect":"scripty","dev":"scripty","docs":"scripty","format":"scripty","lint":"scripty","release":"scripty","size":"scripty","size:analyze":"scripty"},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"dependencies":{"deepmerge":"^4.2.2","zod":"^3.20.2"},"devDependencies":{"@commitlint/cli":"^17.3.0","@commitlint/config-conventional":"^17.3.0","@commitlint/prompt-cli":"^17.3.0","@expo/config-types":"^47.0.0","@semantic-release/changelog":"^6.0.2","@semantic-release/git":"^10.0.1","@semantic-release/github":"^8.0.7","@semantic-release/npm":"^9.0.1","@size-limit/preset-small-lib":"^8.1.0","@size-limit/webpack":"^8.1.0","@size-limit/webpack-why":"^8.1.0","@typescript-eslint/eslint-plugin":"^5.47.1","@typescript-eslint/parser":"^5.47.1","cz-conventional-changelog":"^3.3.0","docs-ts":"^0.7.0","eslint":"^8.31.0","lefthook":"^1.2.6","prettier":"^2.8.1","rimraf":"^3.0.2","scripty":"^2.1.1","semantic-release":"^19.0.5","size-limit":"^8.1.0","tsup":"^6.5.0","typescript":"^4.9.4"},"publishConfig":{"access":"public"},"gitHead":"8bbb501ee22643711a5b68d2ab094b4e045e6316","_id":"@dankreiger/validate-expo-config@1.0.2","_nodeVersion":"18.12.1","_npmVersion":"8.19.3","dist":{"integrity":"sha512-vzMSvKnDdwxYKdTbvnaBIskQoaSrobLv3Gnv8+tLB4X0M9N017rj8TpFBaIiX8k/Cid7giuydlWQWobUoqdCBw==","shasum":"653366fc417935073ec2666f0ed171f7fa510933","tarball":"https://registry.npmjs.org/@dankreiger/validate-expo-config/-/validate-expo-config-1.0.2.tgz","fileCount":100,"unpackedSize":672667,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH1Dksgx7VBJboMSKRZOfcKgqn7JaGcP5pMg2gS5e5UkAiA5svTCnZMXMb3pwv4oxaawBfTCu1PpfxixeEG5wkSytw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjsJnFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrqhw//UZ2p+4kl1sISHdp+ZaE3jDBjZv/lxMCT+7B8jI/AE8ujCpX9\r\nCdfcbcQ8ermZFoN1nEJEBNh1ktl6JnzklynAJGkNtxKVNU2zCQg+BJfw++Ft\r\n7tcsu1Kgzm9+e4XkDuLyU6SjfHaGCsok31aodpRmpBt8jpwrIUKq4ecEOco/\r\nu6L0GtWo6SD7atZmz2URTVaBZx4mJUjHgzJmFwmUwc8BXifeJGFLsDWboFTE\r\njm8AUaXXKJCiI+gaUBxXVg2Qly0Jm2izYwRQUj+880Rc8hBzBdk3nnSUouvx\r\nTWCK47hx5sG20L+l5MJgb6YQbXQxSo+jwvoUTiKZ4U0JEdiqp2mZwf/Jfi5W\r\nUu3Zf3Gim+uDp0wWg3KZCF09y1lHADOAm0io6hdZ6tN265a79aMSJg9fejcm\r\nsqqBKMsR6kXs9kPw0upoqwSC5nSETpmh8PzVYYJ/3GnfzHpV+7qP3DHPU/rD\r\nSorKL4/Sp60TwrzBlUl6lH84o1ymvQrMxv4hGflapBOVFKtdaEHkRw3AE69R\r\nW54xuSS3fBzmNqDzHkCFEWMcvoCBKQYGQDm7TRJ4Oa3h6VLBS3NTlvYmbNCz\r\n8JJoxKWMwSXq4pUs81V1cWQTzdxXLBkOoReuEg6k2iqzXRjljT7IBtTmM3Gz\r\nCuB9looENegUAm3bVm9VIqPkclAj/EE0OiM=\r\n=PTk4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"dankreiger","email":"dan@dankreiger.com"},"directories":{},"maintainers":[{"name":"dankreiger","email":"dan@dankreiger.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/validate-expo-config_1.0.2_1672518085266_0.60354604841769"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-31T19:23:24.972Z","1.0.1":"2022-12-31T19:23:25.161Z","modified":"2022-12-31T20:21:25.578Z","1.0.2":"2022-12-31T20:21:25.484Z"},"maintainers":[{"name":"dankreiger","email":"dan@dankreiger.com"}],"description":"Tools for validating Expo app configurations.","homepage":"https://githubc.com/dankreiger/validate-expo-config#readme","keywords":["expo","tools","config","validation","zod"],"author":{"name":"Dan Kreiger"},"license":"ISC","readme":"# @expo-tools/validate-config\n\nProvides Zod schema for `app.config.{json|js|ts}` in an expo app.\n\n- Main <https://docs.expo.dev/workflow/configuration/>\n- TS specific: <https://docs.expo.dev/workflow/configuration/#using-typescript-for-configuration-appconfigts-instead-of-appconfigjs>\n\n## Installation\n\n1. Install package\n\n   ```sh\n   npm install expo-tools\n   ```\n\n## API Reference\n\n### `validateExpoConfig`\n\nFor more fine-grained control, you can use the `ExpoConfigSchema` directly.\n\n```ts\nimport type { ExpoConfig } from '@expo/config';\nimport { validateExpoConfig } from '@expo-tools/validate-config';\n\nvalidateExpoConfig(config: ExpoConfig); // throws if invalid\n```\n\n| Parameter | Type         | Description                                              |\n| :-------- | :----------- | :------------------------------------------------------- |\n| `config`  | `ExpoConfig` | **Required**. Expo App config object from `@expo/config` |\n\n### `ExpoConfigSchema`\n\nReturns a Zod schema for `app.config.{json|js|ts}`.\n\nExample with `.parse`:\n\n```ts\n// app.config.ts\nimport { z } from 'zod';\nimport { ExpoConfigSchema } from '@expo-tools/validate-config';\n\nconst AppConfig = {\n  // ...\n};\n\n// use schema with any zod methods\n/**\n * use schema with any zod:\n * - schema methods\n *   @see https://github.com/colinhacks/zod#schema-methods\n */\n// e.g. `parse` method\nconst config = ExpoConfigSchema.parse(AppConfig);\n\n/*\n * - object methods\n *  @see https://github.com/colinhacks/zod#objects\n */\n\n// e.g. `merge` method\nconst config = ExpoConfigSchema.merge(\n  z.object({\n    name: z.literal('my-app'),\n    slug: z.literal('my-app'),\n    version: z.literal('1.0.0'),\n    extra: {\n      ...ExpoConfigSchema.extra,\n      apiKey: z.literal('1234'),\n      baseUrl: z.literal('https://my-app.com'),\n    },\n  })\n);\n```\n","readmeFilename":"README.md"}