{"id":17561735,"url":"https://github.com/evervault/evervault-js","last_synced_at":"2026-02-13T13:56:55.578Z","repository":{"id":37415350,"uuid":"277799247","full_name":"evervault/evervault-js","owner":"evervault","description":"Evervault JavaScript SDK.","archived":false,"fork":false,"pushed_at":"2025-04-28T08:56:14.000Z","size":11150,"stargazers_count":9,"open_issues_count":10,"forks_count":2,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-28T10:26:13.014Z","etag":null,"topics":["encryption","javascript","security"],"latest_commit_sha":null,"homepage":"https://docs.evervault.com/sdks/javascript","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evervault.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-07T11:35:24.000Z","updated_at":"2025-04-25T11:05:38.000Z","dependencies_parsed_at":"2023-12-20T16:33:47.139Z","dependency_job_id":"c2fc7acb-79dc-4c59-93e0-b30c7c219b60","html_url":"https://github.com/evervault/evervault-js","commit_stats":null,"previous_names":[],"tags_count":387,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evervault%2Fevervault-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evervault%2Fevervault-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evervault%2Fevervault-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evervault%2Fevervault-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evervault","download_url":"https://codeload.github.com/evervault/evervault-js/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251293826,"owners_count":21566154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encryption","javascript","security"],"created_at":"2024-10-21T12:08:04.016Z","updated_at":"2025-10-23T19:51:54.440Z","avatar_url":"https://github.com/evervault.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# evervault-js\n\nEvervault JavaScript SDK.\n\n## Repository structure\n\nThis is a monorepo managed with [pnpm workspaces](https://pnpm.io/workspaces).\n\n### Public Packages\n\n- `packages/browser` - [Evervault JavaScript SDK for the browser.](https://docs.evervault.com/sdks/javascript).\n- `packages/react` - [The React SDK](https://docs.evervault.com/sdks/reactjs)\n- `packages/react-native-v2` - [React Native SDK](https://docs.evervault.com/sdks/react-native)\n- `packages/card-validator` - card number validator shared between react and react-native\n\n### Private Packages\n\n- `packages/3ds` - Code base for 3ds page for mobile SDKs\n- `packages/inputs` - The codebase for Inputs\n- `packages/ui-components` - The codebase for UI Components.\n- `packages/themes` - An internal package for UI Component themes\n- `packages/types` - An internal package for types that are shared between multiple packages\n- `packages/eslint-config-custom` - A project wide custom eslint config\n- `packages/tsconfig` - A project wide tsconfig\n- `e2e-tests` - End to end tests for the packages.\n- `examples` - A folder of different examples using the JS and React SDK.\n- `statics` - Contains a few static JSON files served from the browser endpoint that barely change.\n\n## Setup\n\nFirst get a node version manager to install node. Any version manager that supports `.nvmrc` will work.\n\n- [fnm (Recommended)](https://github.com/Schniz/fnm)\n- [nvm](https://github.com/nvm-sh/nvm)\n\nInstall node with your version manager and ensure `node -v` maches the version in `.nvmrc`.\n\nSet up [pnpm](https://pnpm.io/) with:\n\n```bash\n# Corepack is recommended for local setup but is still in beta\ncorepack enable\n\ncorepack prepare pnpm@latest-9 --activate\n```\n\nor\n\n```bash\n# Install pnpm globally with npm old-school\nnpm install -g pnpm\n```\n\nInstall the dependencies with:\n\n```bash\npnpm install\n```\n\nCreate a .env file in the project root. You can use the [`.env.example`](.env.example) file as a template for the variables you will need to set.\n\n## Development\n\nThe best way to work on the SDK's is by using one of the example projects. If you run `pnpm dev` in the project root you will be prompted to choose which example project you want to work with. After selecting one, it and all of its dependendies will be run in development mode and any changes you make will be updated immediately.\n\nThe example project will be available on [localhost:4000](https://localhost:4000) after it has started up.\n\n## Building\n\n`pnpm build` will build all packages in the repo.\n\nThe build artifacts will be under `dist` in each package.\n\n## Testing\n\n`pnpm test` will run all unit tests in the repo.\n\n`pnpm e2e:test` will run all Playwright e2e tests in the repo.\n\nBoth `test` and `e2e:test` will need to pass in CI for PR's to be merged.\n\n## Typechecking\n\nTypechecking is done with [TypeScript](https://www.typescriptlang.org/). In packages that have typescript enabled (e.g. have a `tsconfig.json`), the CI step will run the `typecheck` task. PR's will be blocked if this doesn't pass.\n\n## Formatting\n\nFormatting is done with [Prettier](https://prettier.io). The `format` task will overwrite files with the correct formatting, while the `format:check` task will only check files for correct formatting.\n\nThe CI will block PR's if `format:check` fails. If this occurs, run `pnpm run format` to update the formatting on all files. I also recommend using [Editor integrations](https://prettier.io/docs/en/editors.html) with Prettier to format as you write code.\n\n## Release management\n\nWe use [changesets](https://github.com/changesets/changesets) to version manage the packages in this repo.\n\nWhen creating a pr that needs to be rolled into a version release, do `npx changeset`, select the level of the version bump required and describe the changes for the change logs. DO NOT select `major` for releasing breaking changes without team approval.\n\nTo release:\n\nMerge the version PR that the changeset bot created to bump the version numbers.\nThis will bump the versions of the packages and create a git tag for the release.\nThis will trigger a workflow to deploy them to AWS and/or publish to NPM, and create a new release on GitHub.\n\n## React-Native Development\n\nReference of commands (run from the root of this project):\n* `pnpm react-native codegen` rebuilds Android + iOS based on changes to those files\n* `pnpm react-native watch` starts a watch process for rebuilding the RN SDK\n* `pnpm react-native build` just builds the RN SDK\n* `pnpm react-native test` runs the unit test suite\nand for the Expo example\n* `pnpm examples:expo ios` rebuilds the iOS bundle\n* `pnpm examples:expo android` rebuilds the Android bundle\n* `pnpm examples:expo dev` starts up the Metro server\n\n## Environments\n\n| Package             | Production                             | Staging                                |\n| ------------------- | -------------------------------------- | -------------------------------------- |\n| browser             | js.evervault.com/v2/index.js           | js.evervault.io/v2/index.js            |\n| inputs (deprecated) | inputs.evervault.com/index.html        | inputs.evervault.io/index.html         |\n| ui-components       | ui-components.evervault.com/index.html | ui-components.evervault.com/index.html |\n| 3ds                 | 3ds.evervault.com/index.html           | 3ds.evervault.io/index.html            |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevervault%2Fevervault-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevervault%2Fevervault-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevervault%2Fevervault-js/lists"}