devendra-skill-package 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/.github/skills/boiler-project-generator/SKILL.md +103 -0
  2. package/.github/skills/boiler-project-generator/assets/templates/android/README.md +3 -0
  3. package/.github/skills/boiler-project-generator/assets/templates/angular/README.md +3 -0
  4. package/.github/skills/boiler-project-generator/assets/templates/flutter/README.md +3 -0
  5. package/.github/skills/boiler-project-generator/assets/templates/ios/README.md +3 -0
  6. package/.github/skills/boiler-project-generator/assets/templates/react/README.md +3 -0
  7. package/.github/skills/boiler-project-generator/assets/templates/react-native/README.md +3 -0
  8. package/.github/skills/boiler-project-generator/assets/templates/react-native/api-setup.ts +76 -0
  9. package/.github/skills/boiler-project-generator/assets/templates/react-native/component-primary-button.tsx +29 -0
  10. package/.github/skills/boiler-project-generator/assets/templates/react-native/env-config.env +4 -0
  11. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-auth-screen.tsx +45 -0
  12. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-dashboard-screen.tsx +45 -0
  13. package/.github/skills/boiler-project-generator/assets/templates/react-native/feature-profile-screen.tsx +45 -0
  14. package/.github/skills/boiler-project-generator/assets/templates/react-native/hook-use-app-boot.ts +11 -0
  15. package/.github/skills/boiler-project-generator/assets/templates/react-native/navigation-setup.tsx +25 -0
  16. package/.github/skills/boiler-project-generator/assets/templates/react-native/project-structure.md +24 -0
  17. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-hooks.ts +5 -0
  18. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-session-slice.ts +29 -0
  19. package/.github/skills/boiler-project-generator/assets/templates/react-native/redux-store.ts +15 -0
  20. package/.github/skills/boiler-project-generator/assets/templates/react-native/theme-index.ts +23 -0
  21. package/.github/skills/boiler-project-generator/assets/templates/react-native/utils-helpers.ts +7 -0
  22. package/.github/skills/boiler-project-generator/metadata.yaml +29 -0
  23. package/.github/skills/boiler-project-generator/references/android.md +19 -0
  24. package/.github/skills/boiler-project-generator/references/angular.md +14 -0
  25. package/.github/skills/boiler-project-generator/references/flutter.md +17 -0
  26. package/.github/skills/boiler-project-generator/references/ios.md +17 -0
  27. package/.github/skills/boiler-project-generator/references/react-native.md +103 -0
  28. package/.github/skills/boiler-project-generator/references/react.md +17 -0
  29. package/.github/skills/boiler-project-generator/scripts/angular.js +43 -0
  30. package/.github/skills/boiler-project-generator/scripts/generate-project.mjs +107 -0
  31. package/.github/skills/boiler-project-generator/scripts/init.js +105 -0
  32. package/.github/skills/boiler-project-generator/scripts/react-native.js +1041 -0
  33. package/.github/skills/boiler-project-generator/scripts/react.js +32 -0
  34. package/.github/skills/clean-architecture-generator/SKILL.md +235 -0
  35. package/.github/skills/clean-architecture-generator/references/architecture-core.md +126 -0
  36. package/.github/skills/clean-architecture-generator/references/platform-angular.md +374 -0
  37. package/.github/skills/clean-architecture-generator/references/platform-flutter.md +366 -0
  38. package/.github/skills/clean-architecture-generator/references/platform-react-native.md +590 -0
  39. package/.github/skills/clean-architecture-generator/references/platform-react.md +261 -0
  40. package/.github/skills/code-test-coverage-analyzer/SKILL.md +1358 -0
  41. package/.github/skills/code-test-coverage-analyzer/assets/config-questionnaire.md +118 -0
  42. package/.github/skills/code-test-coverage-analyzer/assets/conflict-resolution-protocol.md +99 -0
  43. package/.github/skills/code-test-coverage-analyzer/assets/coverage-calculation-rules.md +294 -0
  44. package/.github/skills/code-test-coverage-analyzer/assets/multi-strategy-search.md +145 -0
  45. package/.github/skills/code-test-coverage-analyzer/assets/output-file-contracts.md +651 -0
  46. package/.github/skills/code-test-coverage-analyzer/assets/status-definitions.md +273 -0
  47. package/.github/skills/code-test-coverage-analyzer/examples/example-invocation.md +208 -0
  48. package/.github/skills/code-test-coverage-analyzer/references/android-patterns.md +229 -0
  49. package/.github/skills/code-test-coverage-analyzer/references/angular-patterns.md +177 -0
  50. package/.github/skills/code-test-coverage-analyzer/references/backend-patterns.md +383 -0
  51. package/.github/skills/code-test-coverage-analyzer/references/flutter-patterns.md +254 -0
  52. package/.github/skills/code-test-coverage-analyzer/references/ios-patterns.md +228 -0
  53. package/.github/skills/code-test-coverage-analyzer/references/react-native-patterns.md +431 -0
  54. package/.github/skills/code-test-coverage-analyzer/references/react-patterns.md +206 -0
  55. package/.github/skills/code-test-coverage-analyzer/scripts/detect-platform.ps1 +261 -0
  56. package/.github/skills/code-test-coverage-analyzer/scripts/scan-repository.ps1 +242 -0
  57. package/.github/skills/code-test-coverage-analyzer/templates/brd-compliance-row.md +107 -0
  58. package/.github/skills/code-test-coverage-analyzer/templates/test-case-row.md +130 -0
  59. package/.github/skills/code-test-coverage-analyzer/templates/user-story-compliance-row.md +170 -0
  60. package/.github/skills/custom-font-integrator/SKILL.md +373 -0
  61. package/.github/skills/custom-font-integrator/assets/FontTestScreen.js +150 -0
  62. package/.github/skills/custom-font-integrator/references/example-info-plist.xml +21 -0
  63. package/.github/skills/custom-font-integrator/scripts/setup-fonts.sh +99 -0
  64. package/.github/skills/encryption-decryption-utility/Instructions.md +282 -0
  65. package/.github/skills/encryption-decryption-utility/README.md +222 -0
  66. package/.github/skills/encryption-decryption-utility/SKILL.md +645 -0
  67. package/.github/skills/encryption-decryption-utility/assets/encryption-config-template.json +13 -0
  68. package/.github/skills/encryption-decryption-utility/assets/platform-matrix.json +180 -0
  69. package/.github/skills/encryption-decryption-utility/metadata.yaml +51 -0
  70. package/.github/skills/encryption-decryption-utility/references/android-crypto.md +157 -0
  71. package/.github/skills/encryption-decryption-utility/references/angular-crypto.md +130 -0
  72. package/.github/skills/encryption-decryption-utility/references/approach-1-webcrypto.md +95 -0
  73. package/.github/skills/encryption-decryption-utility/references/approach-2-rsa-aes-cbc.md +111 -0
  74. package/.github/skills/encryption-decryption-utility/references/approach-3-aes-sharedkey.md +114 -0
  75. package/.github/skills/encryption-decryption-utility/references/architecture.md +233 -0
  76. package/.github/skills/encryption-decryption-utility/references/backend-alignment.md +506 -0
  77. package/.github/skills/encryption-decryption-utility/references/dependency-guidance.md +234 -0
  78. package/.github/skills/encryption-decryption-utility/references/ec-implementation.md +832 -0
  79. package/.github/skills/encryption-decryption-utility/references/error-handling-playbook.md +234 -0
  80. package/.github/skills/encryption-decryption-utility/references/flutter-crypto.md +105 -0
  81. package/.github/skills/encryption-decryption-utility/references/ios-crypto.md +338 -0
  82. package/.github/skills/encryption-decryption-utility/references/native-rsa-implementation.md +373 -0
  83. package/.github/skills/encryption-decryption-utility/references/node-crypto.md +86 -0
  84. package/.github/skills/encryption-decryption-utility/references/react-crypto.md +105 -0
  85. package/.github/skills/encryption-decryption-utility/references/react-native-crypto.md +1001 -0
  86. package/.github/skills/encryption-decryption-utility/references/react-web-crypto.md +668 -0
  87. package/.github/skills/encryption-decryption-utility/references/security-checklist.md +176 -0
  88. package/.github/skills/encryption-decryption-utility/references/web-crypto.md +74 -0
  89. package/.github/skills/encryption-decryption-utility/scripts/detect.js +128 -0
  90. package/.github/skills/encryption-decryption-utility/scripts/install.js +1713 -0
  91. package/.github/skills/encryption-decryption-utility/scripts/setup.js +800 -0
  92. package/.github/skills/encryption-decryption-utility/template.md +241 -0
  93. package/.github/skills/encryption-decryption-utility/templates/config-questionnaire.md +467 -0
  94. package/.github/skills/encryption-decryption-utility/templates/delivery-checklist.md +206 -0
  95. package/.github/skills/encryption-decryption-utility/templates/implementation-plan.md +304 -0
  96. package/.github/skills/feature-generator/SKILL.MD +2741 -0
  97. package/.github/skills/feature-generator/assets/fingerprint-schema.json +385 -0
  98. package/.github/skills/feature-generator/assets/spec-template.md +172 -0
  99. package/.github/skills/feature-generator/assets/transform-rules.json +82 -0
  100. package/.github/skills/feature-generator/references/api-envelope-patterns.md +327 -0
  101. package/.github/skills/feature-generator/references/screen-logic-patterns.md +399 -0
  102. package/.github/skills/feature-generator/references/state-library-patterns.md +464 -0
  103. package/.github/skills/figma-ui-mapper/README.md +34 -0
  104. package/.github/skills/figma-ui-mapper/SKILL.md +101 -0
  105. package/.github/skills/figma-ui-mapper/assets/templates/component-map-template.md +30 -0
  106. package/.github/skills/figma-ui-mapper/assets/templates/generation-report-template.md +49 -0
  107. package/.github/skills/figma-ui-mapper/metadata.yaml +22 -0
  108. package/.github/skills/figma-ui-mapper/references/android.md +11 -0
  109. package/.github/skills/figma-ui-mapper/references/angular.md +18 -0
  110. package/.github/skills/figma-ui-mapper/references/capacitor.md +18 -0
  111. package/.github/skills/figma-ui-mapper/references/common.md +23 -0
  112. package/.github/skills/figma-ui-mapper/references/expo.md +18 -0
  113. package/.github/skills/figma-ui-mapper/references/flutter.md +18 -0
  114. package/.github/skills/figma-ui-mapper/references/frameworks/angular/rules.md +23 -0
  115. package/.github/skills/figma-ui-mapper/references/frameworks/capacitor/rules.md +23 -0
  116. package/.github/skills/figma-ui-mapper/references/frameworks/expo/rules.md +23 -0
  117. package/.github/skills/figma-ui-mapper/references/frameworks/flutter/rules.md +23 -0
  118. package/.github/skills/figma-ui-mapper/references/frameworks/ionic/rules.md +23 -0
  119. package/.github/skills/figma-ui-mapper/references/frameworks/kotlin-multiplatform/rules.md +23 -0
  120. package/.github/skills/figma-ui-mapper/references/frameworks/native-android/rules.md +23 -0
  121. package/.github/skills/figma-ui-mapper/references/frameworks/native-ios/rules.md +23 -0
  122. package/.github/skills/figma-ui-mapper/references/frameworks/next/rules.md +23 -0
  123. package/.github/skills/figma-ui-mapper/references/frameworks/nuxt/rules.md +23 -0
  124. package/.github/skills/figma-ui-mapper/references/frameworks/react/rules.md +19 -0
  125. package/.github/skills/figma-ui-mapper/references/frameworks/react-native/rules.md +23 -0
  126. package/.github/skills/figma-ui-mapper/references/frameworks/svelte/rules.md +23 -0
  127. package/.github/skills/figma-ui-mapper/references/frameworks/vue/rules.md +23 -0
  128. package/.github/skills/figma-ui-mapper/references/ionic.md +18 -0
  129. package/.github/skills/figma-ui-mapper/references/ios.md +11 -0
  130. package/.github/skills/figma-ui-mapper/references/kotlin-multiplatform.md +18 -0
  131. package/.github/skills/figma-ui-mapper/references/native-android.md +18 -0
  132. package/.github/skills/figma-ui-mapper/references/native-ios.md +18 -0
  133. package/.github/skills/figma-ui-mapper/references/next.md +18 -0
  134. package/.github/skills/figma-ui-mapper/references/nuxt.md +18 -0
  135. package/.github/skills/figma-ui-mapper/references/react-figma-guideline.md +21 -0
  136. package/.github/skills/figma-ui-mapper/references/react-native.md +18 -0
  137. package/.github/skills/figma-ui-mapper/references/react.md +18 -0
  138. package/.github/skills/figma-ui-mapper/references/script-usage.md +46 -0
  139. package/.github/skills/figma-ui-mapper/references/svelte.md +18 -0
  140. package/.github/skills/figma-ui-mapper/references/vue.md +18 -0
  141. package/.github/skills/figma-ui-mapper/references/workflow.md +74 -0
  142. package/.github/skills/figma-ui-mapper/scripts/generate-page-through-figma.js +635 -0
  143. package/.github/skills/figma-ui-mapper/scripts/generate-react-page-through-figma.js +4 -0
  144. package/.github/skills/frontend-task-breakdown/SKILL.md +734 -0
  145. package/.github/skills/md-file-converter/SKILL.md +291 -0
  146. package/.github/skills/md-file-converter/config/formats.json +114 -0
  147. package/.github/skills/md-file-converter/extractors/extract-docx.sh +120 -0
  148. package/.github/skills/md-file-converter/extractors/extract-eml.py +108 -0
  149. package/.github/skills/md-file-converter/extractors/extract-pdf.sh +97 -0
  150. package/.github/skills/md-file-converter/extractors/extract-pptx.py +143 -0
  151. package/.github/skills/md-file-converter/extractors/extract-xlsx.py +175 -0
  152. package/.github/skills/md-file-converter/scripts/check-tools.sh +47 -0
  153. package/.github/skills/md-file-converter/scripts/extract-archive.sh +83 -0
  154. package/.github/skills/md-file-converter/scripts/extract-ocr.sh +77 -0
  155. package/.github/skills/md-file-converter/scripts/get-metadata.sh +57 -0
  156. package/.github/skills/md-file-converter/templates/output.md +73 -0
  157. package/.github/skills/md-file-converter/templates/unsupported-object.md +6 -0
  158. package/.github/skills/mockAPI-contract-generator/SKILL.md +607 -0
  159. package/.github/skills/test-case-validator/CHANGELOG.md +155 -0
  160. package/.github/skills/test-case-validator/CONFIGURATION.md +130 -0
  161. package/.github/skills/test-case-validator/EXAMPLES.md +50 -0
  162. package/.github/skills/test-case-validator/QUALITY_SCORING.md +98 -0
  163. package/.github/skills/test-case-validator/README.md +111 -0
  164. package/.github/skills/test-case-validator/REPORT_TEMPLATE.md +116 -0
  165. package/.github/skills/test-case-validator/SKILL.md +209 -0
  166. package/.github/skills/test-case-validator/SYSTEM_PROMPT.md +127 -0
  167. package/.github/skills/test-case-validator/TRACEABILITY_ENGINE.md +152 -0
  168. package/.github/skills/test-case-validator/VALIDATION_RULES.md +411 -0
  169. package/.github/skills/test-case-validator/config/default.config.yaml +62 -0
  170. package/.github/skills/test-case-validator/docs/ARCHITECTURE.md +66 -0
  171. package/.github/skills/test-case-validator/docs/EXTENDING.md +85 -0
  172. package/.github/skills/test-case-validator/docs/FAQ.md +88 -0
  173. package/.github/skills/test-case-validator/docs/VERSIONING.md +55 -0
  174. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-brd.md +43 -0
  175. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-test-cases.csv +9 -0
  176. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/input-user-story.md +29 -0
  177. package/.github/skills/test-case-validator/examples/example-1-manual-qa-ecommerce/output-report.md +303 -0
  178. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-spec.md +43 -0
  179. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/input-test-files-index.md +56 -0
  180. package/.github/skills/test-case-validator/examples/example-2-automated-frontend-suite/output-report.md +274 -0
  181. package/.github/skills/test-case-validator/prompts/00-applicability-resolution.md +61 -0
  182. package/.github/skills/test-case-validator/prompts/01-extraction-user-story.md +58 -0
  183. package/.github/skills/test-case-validator/prompts/02-extraction-brd.md +64 -0
  184. package/.github/skills/test-case-validator/prompts/03-extraction-test-cases.md +92 -0
  185. package/.github/skills/test-case-validator/prompts/04-traceability-matrix.md +41 -0
  186. package/.github/skills/test-case-validator/prompts/05-coverage-analysis.md +46 -0
  187. package/.github/skills/test-case-validator/prompts/06-missing-scenario-detection.md +32 -0
  188. package/.github/skills/test-case-validator/prompts/07-duplicate-detection.md +36 -0
  189. package/.github/skills/test-case-validator/prompts/08-risk-analysis.md +39 -0
  190. package/.github/skills/test-case-validator/prompts/09-gated-wiring-validation.md +53 -0
  191. package/.github/skills/test-case-validator/prompts/10-observation-report.md +56 -0
  192. package/.github/skills/test-case-validator/prompts/11-final-report-assembly.md +57 -0
  193. package/.github/skills/test-case-validator/templates/coverage-table.md +25 -0
  194. package/.github/skills/test-case-validator/templates/executive-summary.md +38 -0
  195. package/.github/skills/test-case-validator/templates/final-summary-block.md +87 -0
  196. package/.github/skills/test-case-validator/templates/observation-entry.md +41 -0
  197. package/.github/skills/test-case-validator/templates/rtm-row.md +25 -0
  198. package/.github/skills/validation-engine-builder/README.md +50 -0
  199. package/.github/skills/validation-engine-builder/SKILL.md +241 -0
  200. package/.github/skills/validation-engine-builder/references/core.md +158 -0
  201. package/.github/skills/validation-engine-builder/references/platform-angular.md +166 -0
  202. package/.github/skills/validation-engine-builder/references/platform-flutter.md +118 -0
  203. package/.github/skills/validation-engine-builder/references/platform-react-native.md +170 -0
  204. package/.github/skills/validation-engine-builder/references/platform-react.md +94 -0
  205. package/.github/skills/validation-engine-builder/scripts/apply-to-project.js +80 -0
  206. package/.github/skills/validation-engine-builder/scripts/generate-angular.js +271 -0
  207. package/.github/skills/validation-engine-builder/scripts/generate-flutter.js +298 -0
  208. package/.github/skills/validation-engine-builder/scripts/generate-react-native.js +217 -0
  209. package/.github/skills/validation-engine-builder/scripts/generate-react.js +163 -0
  210. package/.github/skills/validation-engine-builder/scripts/install-deps.js +53 -0
  211. package/.github/skills/validation-engine-builder/scripts/shared/detect-platform.js +68 -0
  212. package/.github/skills/validation-engine-builder/scripts/shared/npm-deps.js +103 -0
  213. package/.github/skills/validation-engine-builder/scripts/shared/rhf-hook.js +43 -0
  214. package/.github/skills/validation-engine-builder/scripts/shared/ts-messages-regex.js +62 -0
  215. package/.github/skills/validation-engine-builder/scripts/shared/util.js +44 -0
  216. package/.github/skills/validation-engine-builder/scripts/shared/yup-schemas.js +80 -0
  217. package/.github/skills/validation-engine-builder/template.md +73 -0
  218. package/.github/skills/validation-engine-builder/templates/messages.json +22 -0
  219. package/.github/skills/validation-engine-builder/templates/regex.json +16 -0
  220. package/.github/skills/validation-engine-builder/templates/schemas.json +48 -0
  221. package/bin/index.js +145 -0
  222. package/package.json +22 -0
  223. package/readme.md +0 -0
@@ -0,0 +1,234 @@
1
+ # Dependency Guidance
2
+
3
+ Applies to all platforms and approaches. Read this before proposing or running any package install.
4
+
5
+ ---
6
+
7
+ ## React Native — Approach 4 (Production JS Mode — RSA)
8
+
9
+ ### Required Libraries
10
+
11
+ | Library | Purpose |
12
+ |---------|---------|
13
+ | `react-native-quick-crypto` | AES-256-GCM encrypt/decrypt, `randomBytes`, HMAC-SHA256 |
14
+ | `buffer` | Hermes-safe `Buffer` API — use `buffer` (npm), NOT `@craftzdog/react-native-buffer` |
15
+ | `react-native-keychain` | Secure token and sensitive data storage |
16
+ | `react-native-get-random-values` | `crypto.getRandomValues` polyfill — must be first import in `index.js` |
17
+ | `react-native-nitro-modules` | **REQUIRED peer dep** of quick-crypto >= 1.0 — must be installed explicitly |
18
+ | `react-native-worklets` | **REQUIRED peer dep** of quick-crypto >= 1.0 — must be installed explicitly |
19
+
20
+ > **Warning:** `@craftzdog/react-native-buffer` is the old package name. Use `buffer` (npm >= 6.0.0) instead. Both the `buffer` package `Buffer` and quick-crypto's own `Buffer` (imported as `QCBuffer`) are needed for EC mode — they are different classes.
21
+
22
+ ### RN Version Compatibility
23
+
24
+ | Package | RN >= 0.76 (New Arch) | RN 0.70–0.75 | Notes |
25
+ |---------|----------------------|--------------|-------|
26
+ | react-native-quick-crypto | `^1.0.19` | `^0.7.x` | >= 1.0 requires Nitro Modules |
27
+ | react-native-nitro-modules | `^0.35.4` | Not required | Only needed with quick-crypto >= 1.0 |
28
+ | react-native-worklets | `^0.8.1` | Not required | Only needed with quick-crypto >= 1.0 |
29
+ | react-native-keychain | `^9.0.0` (new arch) | `^8.2.0` | |
30
+ | buffer | `^6.0.0` | `^6.0.0` | Required for EC mode Hermes helpers |
31
+ | react-native-get-random-values | `^1.9.0` | `^1.9.0` | |
32
+
33
+ ---
34
+
35
+ ## CRITICAL: Transitive Dependencies of react-native-quick-crypto >= 1.0
36
+
37
+ `react-native-quick-crypto@^1.0` depends on **Nitro Modules** (a C++/JSI bridge framework). This is the #1 source of build failures. You MUST install these manually:
38
+
39
+ ```bash
40
+ npm install react-native-nitro-modules react-native-worklets
41
+ ```
42
+
43
+ `react-native-quick-base64` is also a peer dep but is usually auto-installed. Verify: `npm ls react-native-quick-base64`.
44
+
45
+ After install, ALWAYS clean Android before rebuilding:
46
+
47
+ ```powershell
48
+ Remove-Item "android\app\.cxx","android\app\build","android\build" -Recurse -Force
49
+ cd android; .\gradlew.bat clean; .\gradlew.bat app:installDebug
50
+ ```
51
+
52
+ | Error | Cause | Fix |
53
+ |---|---|---|
54
+ | `ninja: build stopped: subcommand failed` | Missing `react-native-nitro-modules` | `npm install react-native-nitro-modules@^0.35.4` |
55
+ | `autolinking.cpp` build failure | Stale .cxx cache | Delete `.cxx` and rebuild |
56
+ | `undefined reference to NitroModules` | Version mismatch | Align versions per table above |
57
+
58
+ ### Post-Install Verification
59
+
60
+ - [ ] `npm ls react-native-nitro-modules` — NOT `UNMET PEER DEP`
61
+ - [ ] `npm ls react-native-worklets` — installed
62
+ - [ ] `npm ls react-native-quick-base64` — >= 2.1.0
63
+ - [ ] `npm ls buffer` — >= 6.0.0
64
+ - [ ] Android clean build succeeds
65
+ - [ ] iOS pod install succeeds
66
+
67
+ ---
68
+
69
+ ## React Native — Approach 6 (EC / ECDH Mode)
70
+
71
+ ### Required Libraries
72
+
73
+ | Library | Purpose |
74
+ |---------|---------|
75
+ | `react-native-quick-crypto` | ECDH via `createECDH('prime256v1')`, AES-256-GCM, HMAC for HKDF, `randomBytes` |
76
+ | `buffer` | `Buffer` polyfill (>= 6.0.0); `Buffer` from `buffer` pkg + `QCBuffer` from quick-crypto are different classes |
77
+ | `react-native-keychain` | Secure token storage |
78
+ | `react-native-get-random-values` | Polyfill |
79
+ | `react-native-nitro-modules` | **REQUIRED peer dep** of quick-crypto >= 1.0 |
80
+ | `react-native-worklets` | **REQUIRED peer dep** of quick-crypto >= 1.0 |
81
+
82
+ > **No RSA library required** for EC mode. `react-native-quick-crypto` covers all EC crypto primitives.
83
+
84
+ > **NEVER use `Buffer.toString('base64')` on Hermes** — it is broken. Use the `toBase64()` helper from `ec-crypto.util.ts` instead.
85
+
86
+ ### ECDH with react-native-quick-crypto
87
+
88
+ ```typescript
89
+ import { createECDH, createHmac } from 'react-native-quick-crypto';
90
+ import { Buffer } from 'buffer';
91
+ import { Buffer as QCBuffer } from 'react-native-quick-crypto';
92
+
93
+ const ecdh = createECDH('prime256v1'); // P-256 / secp256r1
94
+ ecdh.generateKeys();
95
+ const ephemeralPublicKey = ecdh.getPublicKey(); // Buffer, 65 bytes uncompressed
96
+ const sharedSecret = ecdh.computeSecret(serverPublicKey); // Buffer, 32 bytes
97
+ ```
98
+
99
+ Supported curves: `prime256v1` (P-256), `secp384r1` (P-384), `secp521r1` (P-521). Default: `prime256v1`.
100
+
101
+ ---
102
+
103
+ ## React Native — Approach 5 (Production Native Mode — RSA)
104
+
105
+ ### Required Libraries (instead of react-native-quick-crypto)
106
+
107
+ | Library | Purpose |
108
+ |---------|---------|
109
+ | `react-native-aes-crypto` | Wraps `javax.crypto.Cipher` (Android) and CryptoKit/CommonCrypto (iOS) for AES-GCM |
110
+ | `react-native-rsa-native` | Wraps `Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding")` (Android) and `SecKeyCreateEncryptedData` (iOS) |
111
+ | `react-native-keychain` | Same as JS mode |
112
+ | `react-native-get-random-values` | Same as JS mode |
113
+
114
+ > **Important:** Custom native modules `NativeCryptoModule.kt` + `NativeCryptoPackage.kt` (Android) and
115
+ > `NativeCryptoModule.swift` + `NativeCryptoModule.m` (iOS) are still required alongside these libraries.
116
+ > The libraries provide AES and RSA primitives; the custom modules expose them to JS with the exact
117
+ > `encryptAES(plaintext, keyBase64)` / `decryptAES(ciphertextBase64, ivBase64, keyBase64)` / `encryptRSA(publicKeyPEM, dataBase64)` signature the interceptor expects.
118
+
119
+ ### Platform Requirements (Approach 5)
120
+
121
+ - **Android:** `minSdkVersion >= 23` — `javax.crypto.Cipher` with `AES/GCM/NoPadding` requires API 23+.
122
+ Check `android/app/build.gradle` before proceeding; halt with guidance if below.
123
+ - **iOS:** deployment target `>= 13.0` for `CryptoKit.AES.GCM`.
124
+ If `< 13.0`: use `CommonCrypto` bridge (`CCCryptorGCM` for AES-256-GCM + `SecKeyCreateEncryptedData` for RSA-OAEP).
125
+
126
+ ---
127
+
128
+ ## React Native — Approaches 2 and 3 (Basic)
129
+
130
+ | Library | Approach | Purpose |
131
+ |---------|---------|---------|
132
+ | `axios` | 2, 3 | HTTP client (if not already installed) |
133
+ | `jsencrypt` | 2 only | RSA encryption in JS |
134
+ | `crypto-js` | 2, 3 | AES-CBC encryption |
135
+ | `@types/crypto-js` | 2, 3 | TypeScript types for crypto-js |
136
+ | `react-native-get-random-values` | 2, 3 | Polyfill — must be first import |
137
+
138
+ ---
139
+
140
+ ## Angular — Approaches 1, 2, 3
141
+
142
+ | Library | Approach | Purpose |
143
+ |---------|---------|---------|
144
+ | *(none)* | 1 | Web Crypto API is built in |
145
+ | `jsencrypt` | 2 | RSA encryption |
146
+ | `crypto-js` | 2, 3 | AES-CBC encryption |
147
+ | `@types/crypto-js` | 2, 3 | TypeScript types |
148
+
149
+ Add `allowedCommonJsDependencies: ["crypto-js", "jsencrypt"]` to `angular.json` for approaches 2/3.
150
+
151
+ ---
152
+
153
+ ## Web — Approaches 1, 2, 3
154
+
155
+ Same as Angular. No build tool config change required for plain JS/Vite projects.
156
+
157
+ ---
158
+
159
+ ## Node.js — Approaches 2, 3
160
+
161
+ | Library | Approach | Purpose |
162
+ |---------|---------|---------|
163
+ | `jsencrypt` | 2 | RSA encryption |
164
+ | `crypto-js` | 2, 3 | AES-CBC encryption |
165
+ | `@types/crypto-js` | 2, 3 | TypeScript types |
166
+
167
+ ---
168
+
169
+ ## Android — Approaches 2, 3
170
+
171
+ No npm/gradle packages required. `javax.crypto.Cipher` is part of the Android SDK.
172
+ Ensure `minSdkVersion >= 21` for basic AES support.
173
+
174
+ ---
175
+
176
+ ## iOS — Approaches 1, 2, 3
177
+
178
+ No CocoaPods packages required. `CryptoKit` (iOS 13+) and `CommonCrypto` are system frameworks.
179
+
180
+ ---
181
+
182
+ ## Flutter — Approaches 2, 3
183
+
184
+ Add to `pubspec.yaml`:
185
+ ```yaml
186
+ dependencies:
187
+ encrypt: ^5.0.3
188
+ pointycastle: ^3.7.3
189
+ crypto: ^3.0.3
190
+ dio: ^5.0.0
191
+ ```
192
+
193
+ ---
194
+
195
+ ## Compatibility Process (All Platforms)
196
+
197
+ 1. Read the React Native / framework version from `package.json` or project manifest.
198
+ 2. Inspect existing crypto and networking dependencies already installed.
199
+ 3. Select versions from the compatibility table above (or `setup.js` `VERSION_COMPAT` table for RN).
200
+ 4. Avoid replacing the existing networking stack unless required.
201
+ 5. Install only what is missing — skip already-installed packages.
202
+ 6. For RN: detect package manager (yarn / pnpm / npm) from lock files before installing.
203
+
204
+ ## Install Rules
205
+
206
+ - Prefer pinned versions in production environments.
207
+ - Validate iOS `pod install` and Android Gradle sync after install.
208
+ - Keep upgrades minimal — only security-related package changes.
209
+ - Never force upgrade unrelated packages.
210
+
211
+ ## Conflict Handling
212
+
213
+ - If a dependency conflict appears:
214
+ - Propose compatible alternative versions.
215
+ - Explain the trade-off briefly.
216
+ - Do not force unrelated upgrades.
217
+ - Never downgrade a package that is already above the minimum required version.
218
+
219
+ ## Post-Install Verification
220
+
221
+ ### React Native JS Mode (Approach 4)
222
+
223
+ - Build and run on Android and iOS after installation.
224
+ - Confirm `randomBytes`, `createCipheriv`, `createDecipheriv` are available from `react-native-quick-crypto` at runtime.
225
+ - Confirm `react-native-keychain` initializes correctly.
226
+ - Confirm `react-native-get-random-values` polyfill is the first import in `index.js`.
227
+
228
+ ### React Native Native Mode (Approach 5)
229
+
230
+ - Run `pod install` and Android Gradle sync successfully.
231
+ - Confirm `NativeModules.NativeCryptoModule` is accessible from JS.
232
+ - Confirm `encryptAES`, `decryptAES`, and `encryptRSA` are callable and return Promises.
233
+ - Confirm AES encrypt + decrypt round-trip produces correct plaintext on both platforms.
234
+ - Test on a physical device (not emulator/simulator only).