{"_id":"@andrewflett/typewriter","name":"@andrewflett/typewriter","dist-tags":{"latest":"7.4.2"},"versions":{"7.4.2":{"name":"@andrewflett/typewriter","version":"7.4.2","description":"A compiler for generating strongly typed analytics clients via Segment Protocols","repository":{"type":"git","url":"git+ssh://git@github.com/andflett/typewriter.git"},"homepage":"https://github.com/andflett/typewriter","bugs":{"url":"https://github.com/segmentio/typewriter/issues"},"author":{"name":"Colin King","email":"colin.king@segment.com"},"license":"MIT","main":"./dist/src/cli/index.js","bin":{"typewriter":"dist/src/cli/index.js"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"scripts":{"dev":"TS_NODE_FILES=true NODE_ENV=development ts-node ./src/cli","build":"rm -rf dist && yarn typewriter prod && tsc && copyfiles --up 1 \"src/**/*.hbs\" dist/src/","test":"jest --testPathIgnorePatterns 'tests/e2e/.*' 'example'","e2e":"make e2e","update":"make update","lint":"eslint './src/**/*.{ts,tsx}'","release":"yarn run build && np --any-branch","release:pre":"yarn run build && np prerelease --any-branch --tag next --no-release-draft","prepare":"husky install"},"engines":{"node":">=0.10.18"},"devDependencies":{"@babel/preset-env":"^7.14.8","@types/analytics-node":"^3.1.5","@types/got":"^9.6.7","@types/hapi__joi":"^15.0.2","@types/jest":"^26.0.15","@types/jest-expect-message":"^1.0.3","@types/js-yaml":"^3.12.1","@types/json-schema":"^7.0.3","@types/json-stable-stringify":"^1.0.32","@types/lodash":"^4.14.123","@types/lodash.flow":"^3.5.6","@types/node":"^11.13.6","@types/prettier":"^1.16.3","@types/prompts":"2.0.0","@typescript-eslint/eslint-plugin":"^4.9.0","@typescript-eslint/parser":"^4.9.0","copyfiles":"^2.1.0","eslint":"^7.30.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react":"^7.21.5","husky":"^7.0.0","jest":"^27.0.6","jest-expect-message":"^1.0.2","lint-staged":"^11.0.0","np":"^7.5.0","snyk":"1.655.0","ts-jest":"^27.0.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.0","typewriter":"^7.4.1"},"dependencies":{"@babel/core":"^7.14.8","@types/react":"16.14.0","analytics-node":"4.0.1","figures":"^3.0.0","fuse.js":"^3.4.5","got":"^9.6.0","handlebars":"4.7.7","ink":"^3.2.0","ink-link":"^2.0.0","ink-select-input":"^4.2.1","ink-spinner":"^4.0.2","ink-text-input":"^4.0.2","joi":"^17.4.0","js-yaml":"^4.1.0","json-stable-stringify":"^1.0.1","latest-version":"^5.1.0","lodash":"4.17.21","node-machine-id":"^1.1.12","prettier":"^2.3.2","react":"^17.0.2","semver":"^7.3.5","sort-keys":"^5.0.0","typescript":"^4.3.5","yargs":"^17.0.1"},"eslintConfig":{"parser":"@typescript-eslint/parser","plugins":["@typescript-eslint","prettier"],"extends":["plugin:@typescript-eslint/recommended","prettier/@typescript-eslint","plugin:prettier/recommended","plugin:react/recommended"],"parserOptions":{"ecmaVersion":2018,"sourceType":"module"},"settings":{"react":{"version":"16.14.0"}},"rules":{"prettier/prettier":["error",{"useTabs":true,"semi":false,"singleQuote":true,"trailingComma":"es5","printWidth":100}],"@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/no-namespace":"off","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/interface-name-prefix":"off","@typescript-eslint/no-empty-function":"off"},"overrides":[{"files":["**/*.tsx"],"rules":{"react/prop-types":"off"}}]},"eslintIgnore":["tests/e2e/**/analytics/*","src/analytics/**/*","example/analytics/**/*"],"jest":{"modulePaths":["<rootDir>/"],"testPathIgnorePatterns":["<rootDir>/node_modules/"],"transform":{"^.+\\.tsx?$":"ts-jest"},"setupFilesAfterEnv":["jest-expect-message"]},"lint-staged":{"linters":{"*.(ts|tsx)":["eslint --fix","git add"],"*.json":["prettier --write","git add"],"*.yml":["prettier --write","git add"]}},"directories":{"example":"example","test":"tests"},"gitHead":"ef31caa3dc7c9fe960a1592f99d9a55f5feae4e1","_id":"@andrewflett/typewriter@7.4.2","_nodeVersion":"14.19.0","_npmVersion":"6.14.16","dist":{"integrity":"sha512-dvULxbF8MdDDKj+OxkQ4Fuf/NOqk/F+XdpofnaPvtUWaxjVSEhHNSKAgi/2Y+SMc1dNRQQ7eDMguULxicg6NGA==","shasum":"55e0a3051a21623af81177e2c6d193931aaefb19","tarball":"https://registry.npmjs.org/@andrewflett/typewriter/-/typewriter-7.4.2.tgz","fileCount":122,"unpackedSize":503296,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA4eVmrwvzDtxKzAkVwWNT4468TIcMWRDBIG/H73YL6wAiBv0dNes74Wr354Jjhtn6vdAfXyTysntUZyYHG6F3yUbw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTa8kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqy5w//YXyXwCBIbJsoC1Zx30QrAR43frjaSEzFk0FmB/yylbkGtG+X\r\nO+kXMZdGtQRvhHM4ZZZ57Onr7V1+kIgnwA02FZR1Kh6MSFMQeTT664kXc0r7\r\nM8bzBVJ9HYfcFezREGGNevFH/BHH/UqJNYYAZH226ViV/jy+fa/yj3Xa0ea7\r\nH30tVbqXp8Cj/bUUx2RPifp6cUMZo9BqdEbUAEj7hgMKycpBgEv1CzTPje2y\r\n1ouWxjyGYahLa7/fDwxn56i5zWmGCVOyAhperZSp11xm9IZuMkCQgSvXxbIl\r\nDg23sOUF2xHMNEJ9rh2CYaE3ni28OAh8u3YkuhCU3GJ+6yhYJdoXdP2VV7nU\r\nWOMGwTq3n1ZcjOszkbLRmydFjEkgpn+e55TljCIca4PkYWh0VgS3g0i5U/sh\r\nUBkuNfKSDXa8zL3Vg2lThm8NFSZak8QL1ZCIR4Q+Baqd1Kj7i5X7G4OMm+vv\r\nR90S0FXRFs0XR7Lm/4kTNed6ba4SjTrGtd62gPaTwwbsyL7NfUcBN+e2z3xK\r\nIn0/cBEHDl4CFsl50VUZsH2sUmL6wleJpfZ+q25B79X6d1cSCQwu5JJ+XJ2b\r\nqPSOvHKoZ/tDoT/TjLsrPTxJ84AzfyjdbKeikK6/Sf/quDMEgNMpM+pP8EMw\r\nVG2sO3dCqu7I3S9DtHIYJoyg0scBf8BVSA0=\r\n=l7U3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"andrewflett","email":"andrflett@gmail.com"},"maintainers":[{"name":"andrewflett","email":"andrflett@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typewriter_7.4.2_1649258276436_0.07021801727606403"},"_hasShrinkwrap":false}},"time":{"created":"2022-04-06T15:17:56.369Z","7.4.2":"2022-04-06T15:17:56.603Z","modified":"2022-04-06T15:17:56.756Z"},"maintainers":[{"name":"andrewflett","email":"andrflett@gmail.com"}],"description":"A compiler for generating strongly typed analytics clients via Segment Protocols","homepage":"https://github.com/andflett/typewriter","repository":{"type":"git","url":"git+ssh://git@github.com/andflett/typewriter.git"},"author":{"name":"Colin King","email":"colin.king@segment.com"},"bugs":{"url":"https://github.com/segmentio/typewriter/issues"},"license":"MIT","readme":"<p align=\"center\">\n\t<br>\n\t<br>\n  <img src=\".github/assets/typewriter-logo.svg?sanitize=true\" alt=\"Typewriter logo\" />\n  <br>\n  <br>\n  <br>\n  <br>\n\n  <a href=\"https://circleci.com/gh/segmentio/typewriter\">\n    <img src=\"https://circleci.com/gh/segmentio/typewriter.svg?style=svg&circle-token=8c1e734c99bdc08170e12d85af7a371900e33e96\" alt=\"CircleCI Status\">\n  </a>\n  <a href=\"http://www.npmjs.com/package/typewriter\">\n    <img src=\"https://img.shields.io/npm/v/typewriter.svg\" alt=\"NPM Version\">\n  </a>\n  <a href=\"./.github/LICENSE.md\">\n    <img src=\"https://img.shields.io/npm/l/typewriter.svg\" alt=\"License\">\n  </a>\n  <a href=\"https://snyk.io/test/github/segmentio/typewriter?targetFile=package.json\">\n    <img src=\"https://snyk.io/test/github/segmentio/typewriter/badge.svg?targetFile=package.json\" alt=\"Known Vulnerabilities\" data-canonical-src=\"https://snyk.io/test/github/segmentio/typewriter?targetFile=package.json\">\n  </a>\n  <br>\n  <br>\n  <br>\n\n  <img src=\".github/assets/readme-example.gif\" alt=\"Typewriter GIF Example\" width=\"70%\"/>\n</p>\n\n- 💪 **Strongly Typed Analytics**: Generates strongly-typed [Segment](http://segment.com) analytics clients that provide compile-time errors, along with intellisense for event/property names, types and descriptions.\n\n- 👮 **Analytics Testing**: Validate your instrumentation matches your [spec](https://segment.com/docs/protocols/tracking-plan/) before deploying to production, so you can fail your CI builds without a manual analytics QA process.\n\n- 🌐 **Cross-Language Support**: Supports native clients for [`analytics.js`](https://segment.com/docs/protocols/typewriter/#browser-quickstart), [`analytics-node`](https://segment.com/docs/protocols/typewriter/#node-js-quickstart), [`analytics-android`](https://segment.com/docs/protocols/typewriter/#android-quickstart) and [`analytics-ios`](https://segment.com/docs/protocols/typewriter/#ios-quickstart).\n\n- ✨ **Segment Protocols**: Built-in support to sync your `typewriter` clients with your [centralized Segment Tracking Plans](https://segment.com/docs/protocols/tracking-plan/).\n\n## Get Started\n\n```sh\n# Walks you through setting up a `typewriter.yml` and generating your first client.\n$ npx typewriter init\n```\n\nFor more instructions on setting up your `typewriter` client, such as adding it to your CI, see our [documentation](https://segment.com/docs/protocols/typewriter).\n\n## Contributing\n\n- To submit a bug report or feature request, [file an issue here](issues).\n- To develop on `typewriter` or propose support for a new language, see [our contributors documentation](./.github/CONTRIBUTING.md).\n","readmeFilename":"README.md"}