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,150 @@
1
+ import React, { useState } from 'react';
2
+ import { View, Text, ScrollView, StyleSheet, Switch } from 'react-native';
3
+
4
+ /**
5
+ * FontTestScreen Component
6
+ *
7
+ * A utility component to verify custom fonts are properly loaded
8
+ * in your React Native app for both Android and iOS
9
+ *
10
+ * Usage:
11
+ * <FontTestScreen fonts={['Poppins-Regular', 'Poppins-Bold', 'Montserrat-Regular']} />
12
+ */
13
+
14
+ const FontTestScreen = ({
15
+ fonts = [
16
+ 'Poppins-Regular',
17
+ 'Poppins-Bold',
18
+ 'Poppins-SemiBold',
19
+ 'Montserrat-Regular',
20
+ 'Montserrat-Bold',
21
+ 'Montserrat-Light',
22
+ ],
23
+ customText = 'The quick brown fox jumps over the lazy dog'
24
+ }) => {
25
+ const [showFontName, setShowFontName] = useState(true);
26
+
27
+ return (
28
+ <ScrollView style={styles.container}>
29
+ <View style={styles.header}>
30
+ <Text style={styles.title}>Font Test Screen</Text>
31
+ <Text style={styles.subtitle}>
32
+ Verify your custom fonts are loaded correctly
33
+ </Text>
34
+ </View>
35
+
36
+ <View style={styles.controlPanel}>
37
+ <Text style={styles.controlLabel}>Show Font Names</Text>
38
+ <Switch
39
+ value={showFontName}
40
+ onValueChange={setShowFontName}
41
+ style={styles.switch}
42
+ />
43
+ </View>
44
+
45
+ <View style={styles.fontsList}>
46
+ {fonts.map((font, index) => (
47
+ <View key={index} style={styles.fontItem}>
48
+ {showFontName && (
49
+ <Text style={styles.fontLabel}>{font}</Text>
50
+ )}
51
+ <Text style={[styles.sampleText, { fontFamily: font }]}>
52
+ {customText}
53
+ </Text>
54
+ </View>
55
+ ))}
56
+ </View>
57
+
58
+ <View style={styles.footer}>
59
+ <Text style={styles.footerText}>
60
+ If fonts appear in your custom font above, your setup is working! ✓
61
+ </Text>
62
+ </View>
63
+ </ScrollView>
64
+ );
65
+ };
66
+
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ flex: 1,
70
+ backgroundColor: '#f5f5f5',
71
+ },
72
+ header: {
73
+ backgroundColor: '#2196F3',
74
+ padding: 20,
75
+ paddingTop: 40,
76
+ },
77
+ title: {
78
+ fontSize: 24,
79
+ fontWeight: 'bold',
80
+ color: '#fff',
81
+ marginBottom: 8,
82
+ },
83
+ subtitle: {
84
+ fontSize: 14,
85
+ color: 'rgba(255,255,255,0.8)',
86
+ },
87
+ controlPanel: {
88
+ flexDirection: 'row',
89
+ justifyContent: 'space-between',
90
+ alignItems: 'center',
91
+ backgroundColor: '#fff',
92
+ paddingHorizontal: 16,
93
+ paddingVertical: 12,
94
+ borderBottomWidth: 1,
95
+ borderBottomColor: '#e0e0e0',
96
+ },
97
+ controlLabel: {
98
+ fontSize: 14,
99
+ fontWeight: '600',
100
+ color: '#333',
101
+ },
102
+ switch: {
103
+ marginRight: 0,
104
+ },
105
+ fontsList: {
106
+ paddingHorizontal: 16,
107
+ paddingVertical: 12,
108
+ },
109
+ fontItem: {
110
+ backgroundColor: '#fff',
111
+ borderRadius: 8,
112
+ padding: 16,
113
+ marginBottom: 12,
114
+ borderLeftWidth: 4,
115
+ borderLeftColor: '#2196F3',
116
+ shadowColor: '#000',
117
+ shadowOffset: { width: 0, height: 2 },
118
+ shadowOpacity: 0.1,
119
+ shadowRadius: 3,
120
+ elevation: 3,
121
+ },
122
+ fontLabel: {
123
+ fontSize: 12,
124
+ fontWeight: '600',
125
+ color: '#666',
126
+ textTransform: 'uppercase',
127
+ letterSpacing: 0.5,
128
+ marginBottom: 8,
129
+ },
130
+ sampleText: {
131
+ fontSize: 16,
132
+ lineHeight: 24,
133
+ color: '#333',
134
+ },
135
+ footer: {
136
+ padding: 16,
137
+ backgroundColor: '#e8f5e9',
138
+ margin: 16,
139
+ borderRadius: 8,
140
+ borderLeftWidth: 4,
141
+ borderLeftColor: '#4caf50',
142
+ },
143
+ footerText: {
144
+ fontSize: 13,
145
+ color: '#2e7d32',
146
+ lineHeight: 18,
147
+ },
148
+ });
149
+
150
+ export default FontTestScreen;
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <!-- ... other configuration keys ... -->
6
+
7
+ <!-- Add this array for custom fonts -->
8
+ <key>UIAppFonts</key>
9
+ <array>
10
+ <string>Poppins-Regular.ttf</string>
11
+ <string>Poppins-Bold.ttf</string>
12
+ <string>Poppins-SemiBold.ttf</string>
13
+ <string>Montserrat-Regular.ttf</string>
14
+ <string>Montserrat-Bold.ttf</string>
15
+ <string>Montserrat-Light.ttf</string>
16
+ <!-- Add more fonts as needed -->
17
+ </array>
18
+
19
+ <!-- ... rest of your Info.plist ... -->
20
+ </dict>
21
+ </plist>
@@ -0,0 +1,99 @@
1
+ #!/bin/bash
2
+
3
+ # React Native Custom Fonts Setup Script
4
+ # This script automates font file organization for both Android and iOS
5
+
6
+ set -e
7
+
8
+ # Colors for output
9
+ RED='\033[0;31m'
10
+ GREEN='\033[0;32m'
11
+ YELLOW='\033[1;33m'
12
+ NC='\033[0m' # No Color
13
+
14
+ # Function to print colored output
15
+ print_success() {
16
+ echo -e "${GREEN}✓ $1${NC}"
17
+ }
18
+
19
+ print_error() {
20
+ echo -e "${RED}✗ $1${NC}"
21
+ }
22
+
23
+ print_warning() {
24
+ echo -e "${YELLOW}⚠ $1${NC}"
25
+ }
26
+
27
+ # Check if we're in a React Native project
28
+ if [ ! -f "package.json" ] || ! grep -q "react-native" package.json; then
29
+ print_error "Not in a React Native project directory"
30
+ exit 1
31
+ fi
32
+
33
+ # Get project name from package.json
34
+ PROJECT_NAME=$(grep '"name"' package.json | head -1 | sed 's/.*"name": "\(.*\)".*/\1/')
35
+
36
+ echo "Setting up fonts for React Native project: $PROJECT_NAME"
37
+ echo ""
38
+
39
+ # Resolve fonts path: use first argument if provided, else scan for .ttf files, else default
40
+ if [ -n "$1" ]; then
41
+ FONTS_PATH="$1"
42
+ print_success "Using user-provided fonts path: $FONTS_PATH"
43
+ else
44
+ SCANNED=$(find . -name "*.ttf" -not -path "./android/*" -not -path "./ios/*" -not -path "./node_modules/*" | head -1)
45
+ if [ -n "$SCANNED" ]; then
46
+ FONTS_PATH=$(dirname "$SCANNED")
47
+ FONTS_PATH="${FONTS_PATH#./}"
48
+ print_success "Fonts path detected by scan: $FONTS_PATH"
49
+ else
50
+ FONTS_PATH="assets/fonts"
51
+ print_warning "No .ttf files found. Using default path: $FONTS_PATH"
52
+ fi
53
+ fi
54
+
55
+ echo "INFO: fontsPath resolved to '$FONTS_PATH'"
56
+ echo ""
57
+
58
+ # Step 1: Create fonts directory
59
+ print_warning "Step 1: Creating fonts directory structure..."
60
+ mkdir -p "$FONTS_PATH"
61
+ print_success "Created $FONTS_PATH/"
62
+
63
+ # Step 2: Setup Android
64
+ print_warning "Step 2: Setting up Android fonts..."
65
+ mkdir -p android/app/src/main/assets/fonts
66
+ print_success "Created android/app/src/main/assets/fonts/"
67
+
68
+ # Copy any existing fonts
69
+ if [ -n "$(ls "$FONTS_PATH"/*.ttf 2>/dev/null)" ]; then
70
+ cp "$FONTS_PATH"/*.ttf android/app/src/main/assets/fonts/ 2>/dev/null || true
71
+ print_success "Copied fonts to Android"
72
+ else
73
+ print_warning "No .ttf files found in $FONTS_PATH/ yet. Remember to add your fonts!"
74
+ fi
75
+
76
+ # Step 3: Setup iOS — copy into app target folder (not ios/Fonts)
77
+ print_warning "Step 3: Setting up iOS fonts..."
78
+ IOS_TARGET_DIR="ios/${PROJECT_NAME}"
79
+ mkdir -p "$IOS_TARGET_DIR"
80
+ print_success "Created $IOS_TARGET_DIR/"
81
+
82
+ # Copy any existing fonts
83
+ if [ -n "$(ls "$FONTS_PATH"/*.ttf 2>/dev/null)" ]; then
84
+ cp "$FONTS_PATH"/*.ttf "$IOS_TARGET_DIR"/ 2>/dev/null || true
85
+ print_success "Copied fonts to iOS ($IOS_TARGET_DIR/)"
86
+ fi
87
+
88
+ echo ""
89
+ print_success "Font setup complete!"
90
+ echo ""
91
+ echo "Next steps:"
92
+ echo "1. Add your .ttf files to $FONTS_PATH/"
93
+ echo "2. Run this script again to copy them to both platforms"
94
+ echo " (or pass the path directly: bash setup-fonts.sh <fontsPath>)"
95
+ echo "3. For iOS: Open ios/${PROJECT_NAME}.xcworkspace in Xcode and:"
96
+ echo " - Add fonts to 'Copy Bundle Resources' in Build Phases"
97
+ echo " - Update Info.plist with the UIAppFonts array"
98
+ echo "4. Rebuild with: npx react-native run-android && npx react-native run-ios"
99
+ echo ""
@@ -0,0 +1,282 @@
1
+ # Instructions — How to Use the rn-encryption-decryption Skill in Another Project
2
+
3
+ This guide explains how to copy the `rn-encryption-decryption` skill into a different React Native CLI project and run it end-to-end.
4
+
5
+ ---
6
+
7
+ ## Prerequisites
8
+
9
+ | Requirement | Minimum version / Note |
10
+ |-------------|------------------------|
11
+ | Node.js | 18.x |
12
+ | React Native CLI | 0.71+ |
13
+ | TypeScript | 4.9+ |
14
+ | Axios | Any version (for interceptor integration) |
15
+ | `react-native-keychain` | ^8.0 (secure storage) |
16
+ | `react-native-quick-crypto` | ^1.0 (JS crypto layer, requires Nitro Modules peer deps) |
17
+ | AI assistant | GitHub Copilot, Claude, or any LLM with file-context support |
18
+
19
+ This skill is for **React Native CLI** projects only. It does **not** support Expo managed workflow.
20
+
21
+ > **No automation script exists for this skill.** All implementation is LLM-generated, guided by the reference files and your questionnaire answers. Estimated effort: 2–4 hours depending on model + layer choice.
22
+
23
+ ---
24
+
25
+ ## Skill Execution Breakdown
26
+
27
+ | What | Who does it | % |
28
+ |------|------------|---|
29
+ | Reading RN version and installed packages | Developer (manual check) | — |
30
+ | Architecture decision (RSA vs EC, JS vs Native) | Developer + LLM | LLM |
31
+ | Questionnaire completion | Developer | — |
32
+ | Dependency installation | Developer (manual `npm install`) | — |
33
+ | Key service generation (`RsaKeyService` / `EcKeyService`) | LLM | LLM |
34
+ | Crypto utility generation (`crypto.util.ts`, `hmac.util.ts`) | LLM | LLM |
35
+ | Axios interceptor wiring | LLM | LLM |
36
+ | Native bridge (Kotlin + Swift), if Native layer | LLM | LLM |
37
+ | Backend alignment documentation | LLM | LLM |
38
+ | Security review | LLM + developer | LLM |
39
+ | TypeScript verification | Developer (`npx tsc --noEmit`) | — |
40
+ | **Script total** | | **~0%** |
41
+ | **LLM total** | | **~100%** |
42
+
43
+ The 0/100 split reflects that encryption is entirely project-specific. The key exchange model, nonce format, envelope shape, excluded API paths, and backend contract cannot be determined without developer input — so nothing can be automated. The reference files guide the LLM to produce correct, production-ready output on the first pass.
44
+
45
+ ---
46
+
47
+ ## Step 1 — Copy the Skill Folder
48
+
49
+ Copy the entire `.github/skills/rn-encryption-decryption/` folder into the target project:
50
+
51
+ ```
52
+ <target-project>/
53
+ .github/
54
+ skills/
55
+ rn-encryption-decryption/
56
+ SKILL.md
57
+ Instructions.md
58
+ template.md
59
+ references/
60
+ architecture.md
61
+ backend-alignment.md
62
+ dependency-guidance.md
63
+ ec-implementation.md
64
+ error-handling-playbook.md
65
+ native-rsa-implementation.md
66
+ security-checklist.md
67
+ templates/
68
+ config-questionnaire.md
69
+ delivery-checklist.md
70
+ implementation-plan.md
71
+ ```
72
+
73
+ On Windows (PowerShell):
74
+ ```powershell
75
+ Copy-Item -Recurse -Path ".github\skills\rn-encryption-decryption" `
76
+ -Destination "C:\path\to\target-project\.github\skills\rn-encryption-decryption"
77
+ ```
78
+
79
+ On macOS/Linux:
80
+ ```bash
81
+ cp -r .github/skills/rn-encryption-decryption /path/to/target-project/.github/skills/
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Step 2 — Open the Target Project
87
+
88
+ ```bash
89
+ cd /path/to/target-project
90
+ ```
91
+
92
+ Ensure `package.json` is present. All commands must be run from the project root.
93
+
94
+ ---
95
+
96
+ ## Step 3 — Check Your React Native Version (Manual)
97
+
98
+ ```bash
99
+ node -p "require('./package.json').dependencies['react-native']"
100
+ ```
101
+
102
+ Open `references/dependency-guidance.md` and read the **Transitive Dependencies** section for your RN version. This tells you exactly which packages to install and in what order.
103
+
104
+ > **Critical for RN 0.76+:** `react-native-quick-crypto` ≥ 1.0 requires `react-native-nitro-modules` and `react-native-worklets` as peer dependencies. Install them manually — they are **not** auto-installed.
105
+
106
+ Install the required packages:
107
+
108
+ ```bash
109
+ # Always required (JS crypto layer)
110
+ npm install react-native-quick-crypto react-native-nitro-modules react-native-worklets react-native-keychain buffer
111
+
112
+ # RSA model only
113
+ npm install react-native-rsa-native # or your team's preferred RSA library
114
+
115
+ # iOS only (after any new native package install)
116
+ cd ios && pod install && cd ..
117
+ ```
118
+
119
+ Verify the install:
120
+ ```bash
121
+ npm ls react-native-quick-crypto react-native-nitro-modules react-native-worklets
122
+ ```
123
+
124
+ ---
125
+
126
+ ## Step 4 — Answer the Config Questionnaire (LLM Layer — 100%)
127
+
128
+ Open `templates/config-questionnaire.md`. The questionnaire has four sections — one for each model + layer combination:
129
+
130
+ - **RSA + React Native JS** — most common, simplest backend
131
+ - **RSA + Native** — AES runs in OS engine (Kotlin/Swift)
132
+ - **EC + React Native JS** — forward-secrecy, recommended for new projects
133
+ - **EC + Native** — advanced, AES in OS engine
134
+
135
+ **Key decisions to make before starting:**
136
+
137
+ | Decision | Options | Guidance |
138
+ |----------|---------|----------|
139
+ | Key exchange model | RSA / EC (ECDH) | EC preferred for new builds; RSA if backend already has RSA |
140
+ | Crypto execution layer | JS / Native | JS unless native performance is a hard requirement |
141
+ | EC contract type | Per-request / Session-init | Per-request = new key per API call; session-init = shared key per login session |
142
+ | Excluded paths | e.g. `/auth/login`, `/health` | Paths that bypass encryption (public endpoints) |
143
+ | HMAC signing | Yes / No | Adds request-level integrity check (recommended) |
144
+ | Nonce format | `appId^timestamp.hex` or custom | Must match server contract exactly |
145
+
146
+ Fill in all answers before moving to Step 5. Incomplete answers produce incorrect code.
147
+
148
+ ---
149
+
150
+ ## Step 5 — Load Reference Files into Your AI Assistant
151
+
152
+ Provide **all** of the following files as context to your AI assistant (GitHub Copilot, Claude, etc.):
153
+
154
+ ```
155
+ SKILL.md
156
+ template.md
157
+ references/architecture.md
158
+ references/dependency-guidance.md
159
+ ```
160
+
161
+ Plus the implementation reference for your chosen path:
162
+
163
+ | Chosen path | Load this reference |
164
+ |-------------|---------------------|
165
+ | EC (any layer) | `references/ec-implementation.md` |
166
+ | RSA + Native | `references/native-rsa-implementation.md` |
167
+ | RSA + JS | `references/architecture.md` is sufficient |
168
+
169
+ Plus your existing codebase files:
170
+
171
+ - Your Axios instance / API service (`src/services/api.ts` or equivalent)
172
+ - Your existing interceptors (if any)
173
+ - Your navigation types / route param list (for context only)
174
+
175
+ ---
176
+
177
+ ## Step 6 — Run the Implementation
178
+
179
+ Ask your AI assistant:
180
+
181
+ > "Using the skill files I provided, implement the full encryption system for my React Native app. My configuration answers are: [paste your questionnaire answers here]. Follow the execution order in SKILL.md and use the relevant implementation reference for code."
182
+
183
+ The LLM will generate (in order):
184
+
185
+ 1. **Crypto utility** — `src/services/security/crypto.util.ts`
186
+ 2. **HMAC utility** — `src/services/security/hmac.util.ts` (if HMAC enabled)
187
+ 3. **Key service** — `src/services/security/rsa-key.service.ts` or `ec-key.service.ts`
188
+ 4. **Types** — `src/services/security/types.ts`
189
+ 5. **Updated API service** — patched `api.ts` with encryption/decryption interceptors
190
+ 6. **Native bridge** (if Native layer) — `android/app/src/main/kotlin/…/NativeCryptoModule.kt` + `ios/…/NativeCryptoModule.swift`
191
+ 7. **Backend alignment doc** — hand-off document for your server team
192
+
193
+ > If the LLM generates a file that already exists (e.g., `api.ts`), ask it to show a diff patch or the specific lines to add, rather than replacing the full file.
194
+
195
+ ---
196
+
197
+ ## Step 7 — Wipe Android C++ Cache (if using quick-crypto + Nitro Modules)
198
+
199
+ After installing Nitro-Modules-based packages, the Android `.cxx` build cache must be cleaned:
200
+
201
+ ```powershell
202
+ # Windows
203
+ Remove-Item -Recurse -Force "android\app\.cxx"
204
+ Remove-Item -Recurse -Force "android\.gradle"
205
+ ```
206
+
207
+ ```bash
208
+ # macOS/Linux
209
+ rm -rf android/app/.cxx android/.gradle
210
+ ```
211
+
212
+ Then rebuild:
213
+ ```bash
214
+ npx react-native run-android # or your build command
215
+ ```
216
+
217
+ ---
218
+
219
+ ## Step 8 — Verify TypeScript
220
+
221
+ ```bash
222
+ npx tsc --noEmit
223
+ ```
224
+
225
+ Expected: zero errors. Common errors and their fixes are documented in `references/dependency-guidance.md` under "Troubleshooting".
226
+
227
+ If you see errors about missing types for `react-native-quick-crypto`:
228
+ ```bash
229
+ npm ls react-native-quick-crypto
230
+ ```
231
+
232
+ ---
233
+
234
+ ## Step 9 — Security Review
235
+
236
+ Before committing, work through `references/security-checklist.md` and `templates/delivery-checklist.md`. Key items:
237
+
238
+ - All production API calls pass through the encryption interceptor.
239
+ - `EXCLUDED_PATHS` list is correct — no encrypted endpoint missing, no public endpoint accidentally encrypted.
240
+ - Ephemeral EC private keys are discarded after `computeSecret()` is called.
241
+ - AES keys are held in-memory only (not logged, not stored).
242
+ - `react-native-keychain` stores tokens with `ACCESSIBLE_WHEN_UNLOCKED_THIS_DEVICE_ONLY`.
243
+ - HMAC signature is validated server-side.
244
+ - HTTP (non-HTTPS) is blocked at the API layer.
245
+
246
+ ---
247
+
248
+ ## Step 10 — Backend Alignment
249
+
250
+ Provide your server team with the output of:
251
+
252
+ > "Generate the backend alignment document for my chosen model (RSA/EC). Use `references/backend-alignment.md` Part A (RSA) or Part B (EC)."
253
+
254
+ This document specifies:
255
+ - Expected request envelope schema (field names, encoding, types)
256
+ - Key format (PKCS#8 PEM for RSA; 65-byte uncompressed P-256 base64 for EC)
257
+ - Nonce format and validation rules
258
+ - Response decryption contract
259
+ - HMAC verification steps
260
+
261
+ Share this with the backend team **before integration testing begins** to avoid contract mismatches.
262
+
263
+ ---
264
+
265
+ ## Adapting to a Different API Client
266
+
267
+ If the target project uses `fetch` or `ky` instead of Axios:
268
+
269
+ 1. Replace `api.interceptors.request.use(...)` with a wrapper function that encrypts the body before `fetch()`.
270
+ 2. Replace `api.interceptors.response.use(...)` with a wrapper that decrypts the body after `await response.json()`.
271
+ 3. The key service, crypto utility, and HMAC utility are client-agnostic — no changes needed there.
272
+
273
+ ---
274
+
275
+ ## Updating the Skill for a New React Native Version
276
+
277
+ When upgrading React Native in an existing project:
278
+
279
+ 1. Open `references/dependency-guidance.md` and check the version matrix for the new RN version.
280
+ 2. Update `react-native-quick-crypto`, `react-native-nitro-modules`, and `react-native-worklets` to the versions listed.
281
+ 3. Wipe the Android `.cxx` cache (Step 7 above) and rebuild.
282
+ 4. Run `npx tsc --noEmit` to verify no type changes broke the build.