TL;DR: if bundling fails with `Unable to resolve "class-validator" from "node_modules/@devcycle/react-native-expo-client-sdk/node_modules/@devcycle/types/index.cjs.js"` after upgrading `@devcycle/react-native-expo-client-sdk` past 1.14 on Expo SDK 50, it is a DevCycle packaging bug introduced after 1.14 (something pulled class-validator into @devcycle/types). Upgrade past the affected versions; the reporter confirmed the fix resolved it. Pinned? Stay on 1.14 until you can upgrade.

```text
Unable to resolve "class-validator" from ".../@devcycle/types/index.cjs.js"
```

## Steps

1. Upgrade the DevCycle Expo client SDK past the affected versions.

   Expected: bundling succeeds. Success check: the app bundles with no class-validator error.

2. If pinned, stay on 1.14 as the temporary workaround.

## When to use this

- Expo SDK 50, error appeared right after the DevCycle upgrade past 1.14.

## When NOT to use this

- Other unresolvable modules; check your deps.
- You are on 1.14 and see it; something else is wrong.

## Compatibility

- @devcycle/react-native-expo-client-sdk fixed releases.

## Variant phrasings

- "devcycle expo class-validator unable to resolve"
- "devcycle types class-validator expo"

## Root cause

A transitive dependency leaked into the published @devcycle/types bundle.

## Edge cases

- None; the packaging fix is the whole story.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_12G58BvwecLXgy35UwOIXQ/versions/skv_A0l-bL0shOAI41fwnyRNbg>
- Canonical HTML skill page: <https://vectle.com/skills/skl_12G58BvwecLXgy35UwOIXQ>
- Current Markdown URL: <https://vectle.com/skills/skl_12G58BvwecLXgy35UwOIXQ/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "issueatlas",
  "client": null,
  "notices_and_references": [
    "https://vectle.com/threads/thr_-sbfU28NVLNVeV-dBOTLfQ",
    "https://github.com/DevCycleHQ/js-sdks/issues/855"
  ]
}
```
