@mweinbach/apple-docs-mcp 1.0.0

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 (267) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +560 -0
  3. package/dist/constants/browser-headers.d.ts +48 -0
  4. package/dist/constants/browser-headers.d.ts.map +1 -0
  5. package/dist/constants/browser-headers.js +166 -0
  6. package/dist/constants/browser-headers.js.map +1 -0
  7. package/dist/index.d.ts +83 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +215 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/schemas/analyze-api.schema.d.ts +42 -0
  12. package/dist/schemas/analyze-api.schema.d.ts.map +1 -0
  13. package/dist/schemas/analyze-api.schema.js +23 -0
  14. package/dist/schemas/analyze-api.schema.js.map +1 -0
  15. package/dist/schemas/apple-docs.schema.d.ts +18 -0
  16. package/dist/schemas/apple-docs.schema.d.ts.map +1 -0
  17. package/dist/schemas/apple-docs.schema.js +10 -0
  18. package/dist/schemas/apple-docs.schema.js.map +1 -0
  19. package/dist/schemas/doc-content.schema.d.ts +24 -0
  20. package/dist/schemas/doc-content.schema.d.ts.map +1 -0
  21. package/dist/schemas/doc-content.schema.js +10 -0
  22. package/dist/schemas/doc-content.schema.js.map +1 -0
  23. package/dist/schemas/documentation-updates.schema.d.ts +27 -0
  24. package/dist/schemas/documentation-updates.schema.d.ts.map +1 -0
  25. package/dist/schemas/documentation-updates.schema.js +12 -0
  26. package/dist/schemas/documentation-updates.schema.js.map +1 -0
  27. package/dist/schemas/framework-symbols.schema.d.ts +24 -0
  28. package/dist/schemas/framework-symbols.schema.d.ts.map +1 -0
  29. package/dist/schemas/framework-symbols.schema.js +11 -0
  30. package/dist/schemas/framework-symbols.schema.js.map +1 -0
  31. package/dist/schemas/index.d.ts +15 -0
  32. package/dist/schemas/index.d.ts.map +1 -0
  33. package/dist/schemas/index.js +15 -0
  34. package/dist/schemas/index.js.map +1 -0
  35. package/dist/schemas/platform-compatibility.schema.d.ts +18 -0
  36. package/dist/schemas/platform-compatibility.schema.d.ts.map +1 -0
  37. package/dist/schemas/platform-compatibility.schema.js +8 -0
  38. package/dist/schemas/platform-compatibility.schema.js.map +1 -0
  39. package/dist/schemas/references.schema.d.ts +18 -0
  40. package/dist/schemas/references.schema.d.ts.map +1 -0
  41. package/dist/schemas/references.schema.js +9 -0
  42. package/dist/schemas/references.schema.js.map +1 -0
  43. package/dist/schemas/related-apis.schema.d.ts +21 -0
  44. package/dist/schemas/related-apis.schema.d.ts.map +1 -0
  45. package/dist/schemas/related-apis.schema.js +9 -0
  46. package/dist/schemas/related-apis.schema.js.map +1 -0
  47. package/dist/schemas/sample-code.schema.d.ts +21 -0
  48. package/dist/schemas/sample-code.schema.d.ts.map +1 -0
  49. package/dist/schemas/sample-code.schema.js +10 -0
  50. package/dist/schemas/sample-code.schema.js.map +1 -0
  51. package/dist/schemas/search.schema.d.ts +15 -0
  52. package/dist/schemas/search.schema.d.ts.map +1 -0
  53. package/dist/schemas/search.schema.js +8 -0
  54. package/dist/schemas/search.schema.js.map +1 -0
  55. package/dist/schemas/similar-apis.schema.d.ts +21 -0
  56. package/dist/schemas/similar-apis.schema.d.ts.map +1 -0
  57. package/dist/schemas/similar-apis.schema.js +9 -0
  58. package/dist/schemas/similar-apis.schema.js.map +1 -0
  59. package/dist/schemas/technologies.schema.d.ts +21 -0
  60. package/dist/schemas/technologies.schema.d.ts.map +1 -0
  61. package/dist/schemas/technologies.schema.js +10 -0
  62. package/dist/schemas/technologies.schema.js.map +1 -0
  63. package/dist/schemas/technology-overviews.schema.d.ts +24 -0
  64. package/dist/schemas/technology-overviews.schema.d.ts.map +1 -0
  65. package/dist/schemas/technology-overviews.schema.js +11 -0
  66. package/dist/schemas/technology-overviews.schema.js.map +1 -0
  67. package/dist/schemas/wwdc.schemas.d.ts +208 -0
  68. package/dist/schemas/wwdc.schemas.d.ts.map +1 -0
  69. package/dist/schemas/wwdc.schemas.js +97 -0
  70. package/dist/schemas/wwdc.schemas.js.map +1 -0
  71. package/dist/tools/definitions.d.ts +10 -0
  72. package/dist/tools/definitions.d.ts.map +1 -0
  73. package/dist/tools/definitions.js +690 -0
  74. package/dist/tools/definitions.js.map +1 -0
  75. package/dist/tools/doc-fetcher.d.ts +19 -0
  76. package/dist/tools/doc-fetcher.d.ts.map +1 -0
  77. package/dist/tools/doc-fetcher.js +487 -0
  78. package/dist/tools/doc-fetcher.js.map +1 -0
  79. package/dist/tools/doc-formatter.d.ts +69 -0
  80. package/dist/tools/doc-formatter.d.ts.map +1 -0
  81. package/dist/tools/doc-formatter.js +208 -0
  82. package/dist/tools/doc-formatter.js.map +1 -0
  83. package/dist/tools/find-similar-apis.d.ts +5 -0
  84. package/dist/tools/find-similar-apis.d.ts.map +1 -0
  85. package/dist/tools/find-similar-apis.js +275 -0
  86. package/dist/tools/find-similar-apis.js.map +1 -0
  87. package/dist/tools/get-documentation-updates.d.ts +5 -0
  88. package/dist/tools/get-documentation-updates.d.ts.map +1 -0
  89. package/dist/tools/get-documentation-updates.js +244 -0
  90. package/dist/tools/get-documentation-updates.js.map +1 -0
  91. package/dist/tools/get-platform-compatibility.d.ts +5 -0
  92. package/dist/tools/get-platform-compatibility.d.ts.map +1 -0
  93. package/dist/tools/get-platform-compatibility.js +205 -0
  94. package/dist/tools/get-platform-compatibility.js.map +1 -0
  95. package/dist/tools/get-related-apis.d.ts +5 -0
  96. package/dist/tools/get-related-apis.d.ts.map +1 -0
  97. package/dist/tools/get-related-apis.js +155 -0
  98. package/dist/tools/get-related-apis.js.map +1 -0
  99. package/dist/tools/get-sample-code.d.ts +5 -0
  100. package/dist/tools/get-sample-code.d.ts.map +1 -0
  101. package/dist/tools/get-sample-code.js +375 -0
  102. package/dist/tools/get-sample-code.js.map +1 -0
  103. package/dist/tools/get-technology-overviews.d.ts +5 -0
  104. package/dist/tools/get-technology-overviews.d.ts.map +1 -0
  105. package/dist/tools/get-technology-overviews.js +306 -0
  106. package/dist/tools/get-technology-overviews.js.map +1 -0
  107. package/dist/tools/handlers.d.ts +29 -0
  108. package/dist/tools/handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers.js +350 -0
  110. package/dist/tools/handlers.js.map +1 -0
  111. package/dist/tools/list-technologies.d.ts +5 -0
  112. package/dist/tools/list-technologies.d.ts.map +1 -0
  113. package/dist/tools/list-technologies.js +165 -0
  114. package/dist/tools/list-technologies.js.map +1 -0
  115. package/dist/tools/resolve-references-batch.d.ts +5 -0
  116. package/dist/tools/resolve-references-batch.d.ts.map +1 -0
  117. package/dist/tools/resolve-references-batch.js +199 -0
  118. package/dist/tools/resolve-references-batch.js.map +1 -0
  119. package/dist/tools/search-framework-symbols.d.ts +7 -0
  120. package/dist/tools/search-framework-symbols.d.ts.map +1 -0
  121. package/dist/tools/search-framework-symbols.js +235 -0
  122. package/dist/tools/search-framework-symbols.js.map +1 -0
  123. package/dist/tools/search-parser.d.ts +15 -0
  124. package/dist/tools/search-parser.d.ts.map +1 -0
  125. package/dist/tools/search-parser.js +188 -0
  126. package/dist/tools/search-parser.js.map +1 -0
  127. package/dist/tools/search-result-parser.d.ts +52 -0
  128. package/dist/tools/search-result-parser.d.ts.map +1 -0
  129. package/dist/tools/search-result-parser.js +137 -0
  130. package/dist/tools/search-result-parser.js.map +1 -0
  131. package/dist/tools/tools-guide.d.ts +124 -0
  132. package/dist/tools/tools-guide.d.ts.map +1 -0
  133. package/dist/tools/tools-guide.js +389 -0
  134. package/dist/tools/tools-guide.js.map +1 -0
  135. package/dist/tools/wwdc/content-extractor.d.ts +9 -0
  136. package/dist/tools/wwdc/content-extractor.d.ts.map +1 -0
  137. package/dist/tools/wwdc/content-extractor.js +520 -0
  138. package/dist/tools/wwdc/content-extractor.js.map +1 -0
  139. package/dist/tools/wwdc/topics-extractor.d.ts +32 -0
  140. package/dist/tools/wwdc/topics-extractor.d.ts.map +1 -0
  141. package/dist/tools/wwdc/topics-extractor.js +146 -0
  142. package/dist/tools/wwdc/topics-extractor.js.map +1 -0
  143. package/dist/tools/wwdc/video-list-extractor.d.ts +13 -0
  144. package/dist/tools/wwdc/video-list-extractor.d.ts.map +1 -0
  145. package/dist/tools/wwdc/video-list-extractor.js +238 -0
  146. package/dist/tools/wwdc/video-list-extractor.js.map +1 -0
  147. package/dist/tools/wwdc/wwdc-handlers.d.ts +32 -0
  148. package/dist/tools/wwdc/wwdc-handlers.d.ts.map +1 -0
  149. package/dist/tools/wwdc/wwdc-handlers.js +791 -0
  150. package/dist/tools/wwdc/wwdc-handlers.js.map +1 -0
  151. package/dist/types/apple-docs.d.ts +112 -0
  152. package/dist/types/apple-docs.d.ts.map +1 -0
  153. package/dist/types/apple-docs.js +5 -0
  154. package/dist/types/apple-docs.js.map +1 -0
  155. package/dist/types/cache.d.ts +28 -0
  156. package/dist/types/cache.d.ts.map +1 -0
  157. package/dist/types/cache.js +5 -0
  158. package/dist/types/cache.js.map +1 -0
  159. package/dist/types/content-sections.d.ts +37 -0
  160. package/dist/types/content-sections.d.ts.map +1 -0
  161. package/dist/types/content-sections.js +5 -0
  162. package/dist/types/content-sections.js.map +1 -0
  163. package/dist/types/error.d.ts +39 -0
  164. package/dist/types/error.d.ts.map +1 -0
  165. package/dist/types/error.js +21 -0
  166. package/dist/types/error.js.map +1 -0
  167. package/dist/types/headers.d.ts +95 -0
  168. package/dist/types/headers.d.ts.map +1 -0
  169. package/dist/types/headers.js +5 -0
  170. package/dist/types/headers.js.map +1 -0
  171. package/dist/types/http.d.ts +31 -0
  172. package/dist/types/http.d.ts.map +1 -0
  173. package/dist/types/http.js +5 -0
  174. package/dist/types/http.js.map +1 -0
  175. package/dist/types/index.d.ts +11 -0
  176. package/dist/types/index.d.ts.map +1 -0
  177. package/dist/types/index.js +12 -0
  178. package/dist/types/index.js.map +1 -0
  179. package/dist/types/search.d.ts +62 -0
  180. package/dist/types/search.d.ts.map +1 -0
  181. package/dist/types/search.js +5 -0
  182. package/dist/types/search.js.map +1 -0
  183. package/dist/types/sections.d.ts +64 -0
  184. package/dist/types/sections.d.ts.map +1 -0
  185. package/dist/types/sections.js +5 -0
  186. package/dist/types/sections.js.map +1 -0
  187. package/dist/types/tools/platform.d.ts +33 -0
  188. package/dist/types/tools/platform.d.ts.map +1 -0
  189. package/dist/types/tools/platform.js +5 -0
  190. package/dist/types/tools/platform.js.map +1 -0
  191. package/dist/types/tools/sample-code.d.ts +23 -0
  192. package/dist/types/tools/sample-code.d.ts.map +1 -0
  193. package/dist/types/tools/sample-code.js +5 -0
  194. package/dist/types/tools/sample-code.js.map +1 -0
  195. package/dist/types/tools/technology.d.ts +18 -0
  196. package/dist/types/tools/technology.d.ts.map +1 -0
  197. package/dist/types/tools/technology.js +5 -0
  198. package/dist/types/tools/technology.js.map +1 -0
  199. package/dist/types/tools/updates.d.ts +23 -0
  200. package/dist/types/tools/updates.d.ts.map +1 -0
  201. package/dist/types/tools/updates.js +5 -0
  202. package/dist/types/tools/updates.js.map +1 -0
  203. package/dist/types/wwdc.d.ts +200 -0
  204. package/dist/types/wwdc.d.ts.map +1 -0
  205. package/dist/types/wwdc.js +5 -0
  206. package/dist/types/wwdc.js.map +1 -0
  207. package/dist/utils/cache-warmer.d.ts +22 -0
  208. package/dist/utils/cache-warmer.d.ts.map +1 -0
  209. package/dist/utils/cache-warmer.js +115 -0
  210. package/dist/utils/cache-warmer.js.map +1 -0
  211. package/dist/utils/cache.d.ts +109 -0
  212. package/dist/utils/cache.d.ts.map +1 -0
  213. package/dist/utils/cache.js +302 -0
  214. package/dist/utils/cache.js.map +1 -0
  215. package/dist/utils/constants.d.ts +178 -0
  216. package/dist/utils/constants.d.ts.map +1 -0
  217. package/dist/utils/constants.js +266 -0
  218. package/dist/utils/constants.js.map +1 -0
  219. package/dist/utils/error-handler.d.ts +80 -0
  220. package/dist/utils/error-handler.d.ts.map +1 -0
  221. package/dist/utils/error-handler.js +437 -0
  222. package/dist/utils/error-handler.js.map +1 -0
  223. package/dist/utils/framework-mapper.d.ts +84 -0
  224. package/dist/utils/framework-mapper.d.ts.map +1 -0
  225. package/dist/utils/framework-mapper.js +534 -0
  226. package/dist/utils/framework-mapper.js.map +1 -0
  227. package/dist/utils/http-client.d.ts +130 -0
  228. package/dist/utils/http-client.d.ts.map +1 -0
  229. package/dist/utils/http-client.js +464 -0
  230. package/dist/utils/http-client.js.map +1 -0
  231. package/dist/utils/http-headers-generator.d.ts +151 -0
  232. package/dist/utils/http-headers-generator.d.ts.map +1 -0
  233. package/dist/utils/http-headers-generator.js +407 -0
  234. package/dist/utils/http-headers-generator.js.map +1 -0
  235. package/dist/utils/logger.d.ts +44 -0
  236. package/dist/utils/logger.d.ts.map +1 -0
  237. package/dist/utils/logger.js +73 -0
  238. package/dist/utils/logger.js.map +1 -0
  239. package/dist/utils/preloader.d.ts +20 -0
  240. package/dist/utils/preloader.d.ts.map +1 -0
  241. package/dist/utils/preloader.js +82 -0
  242. package/dist/utils/preloader.js.map +1 -0
  243. package/dist/utils/rate-limiter.d.ts +28 -0
  244. package/dist/utils/rate-limiter.d.ts.map +1 -0
  245. package/dist/utils/rate-limiter.js +48 -0
  246. package/dist/utils/rate-limiter.js.map +1 -0
  247. package/dist/utils/topic-mapper.d.ts +18 -0
  248. package/dist/utils/topic-mapper.d.ts.map +1 -0
  249. package/dist/utils/topic-mapper.js +182 -0
  250. package/dist/utils/topic-mapper.js.map +1 -0
  251. package/dist/utils/url-converter.d.ts +22 -0
  252. package/dist/utils/url-converter.d.ts.map +1 -0
  253. package/dist/utils/url-converter.js +70 -0
  254. package/dist/utils/url-converter.js.map +1 -0
  255. package/dist/utils/user-agent-pool.d.ts +241 -0
  256. package/dist/utils/user-agent-pool.d.ts.map +1 -0
  257. package/dist/utils/user-agent-pool.js +557 -0
  258. package/dist/utils/user-agent-pool.js.map +1 -0
  259. package/dist/utils/wwdc-data-source-path.d.ts +9 -0
  260. package/dist/utils/wwdc-data-source-path.d.ts.map +1 -0
  261. package/dist/utils/wwdc-data-source-path.js +22 -0
  262. package/dist/utils/wwdc-data-source-path.js.map +1 -0
  263. package/dist/utils/wwdc-data-source.d.ts +36 -0
  264. package/dist/utils/wwdc-data-source.d.ts.map +1 -0
  265. package/dist/utils/wwdc-data-source.js +133 -0
  266. package/dist/utils/wwdc-data-source.js.map +1 -0
  267. package/package.json +83 -0
@@ -0,0 +1,534 @@
1
+ /**
2
+ * Unified framework name mapping system for Apple Docs MCP
3
+ *
4
+ * This module provides consistent framework name normalization across all tools.
5
+ * It handles common variations, typos, and alternative names for Apple frameworks.
6
+ */
7
+ /**
8
+ * Comprehensive framework name mappings
9
+ * Maps lowercase/alternative names to canonical Apple framework names
10
+ */
11
+ export const FRAMEWORK_MAPPINGS = {
12
+ // UI Frameworks
13
+ 'swiftui': 'SwiftUI',
14
+ 'swift-ui': 'SwiftUI',
15
+ 'swift_ui': 'SwiftUI',
16
+ 'uikit': 'UIKit',
17
+ 'ui-kit': 'UIKit',
18
+ 'ui_kit': 'UIKit',
19
+ 'appkit': 'AppKit',
20
+ 'app-kit': 'AppKit',
21
+ 'app_kit': 'AppKit',
22
+ 'widgetkit': 'WidgetKit',
23
+ 'widget-kit': 'WidgetKit',
24
+ 'widget_kit': 'WidgetKit',
25
+ 'watchkit': 'WatchKit',
26
+ 'watch-kit': 'WatchKit',
27
+ 'watch_kit': 'WatchKit',
28
+ 'tvuikit': 'TVUIKit',
29
+ 'tv-ui-kit': 'TVUIKit',
30
+ 'tv_ui_kit': 'TVUIKit',
31
+ // Foundation & Core
32
+ 'foundation': 'Foundation',
33
+ 'combine': 'Combine',
34
+ 'swift': 'Swift',
35
+ 'swiftlang': 'Swift',
36
+ 'objective-c': 'Objective-C',
37
+ 'objc': 'Objective-C',
38
+ 'objectivec': 'Objective-C',
39
+ 'cocoa': 'Cocoa',
40
+ 'cocoatouch': 'Cocoa Touch',
41
+ 'cocoa-touch': 'Cocoa Touch',
42
+ 'cocoa_touch': 'Cocoa Touch',
43
+ // Data & Storage
44
+ 'coredata': 'Core Data',
45
+ 'core-data': 'Core Data',
46
+ 'core_data': 'Core Data',
47
+ 'cloudkit': 'CloudKit',
48
+ 'cloud-kit': 'CloudKit',
49
+ 'cloud_kit': 'CloudKit',
50
+ 'userdefaults': 'UserDefaults',
51
+ 'user-defaults': 'UserDefaults',
52
+ 'user_defaults': 'UserDefaults',
53
+ 'keychain': 'Keychain Services',
54
+ 'keychainservices': 'Keychain Services',
55
+ 'keychain-services': 'Keychain Services',
56
+ 'keychain_services': 'Keychain Services',
57
+ 'sqlite': 'SQLite',
58
+ 'fmdb': 'SQLite',
59
+ // Graphics & Games
60
+ 'arkit': 'ARKit',
61
+ 'ar-kit': 'ARKit',
62
+ 'ar_kit': 'ARKit',
63
+ 'realitykit': 'RealityKit',
64
+ 'reality-kit': 'RealityKit',
65
+ 'reality_kit': 'RealityKit',
66
+ 'scenekit': 'SceneKit',
67
+ 'scene-kit': 'SceneKit',
68
+ 'scene_kit': 'SceneKit',
69
+ 'spritekit': 'SpriteKit',
70
+ 'sprite-kit': 'SpriteKit',
71
+ 'sprite_kit': 'SpriteKit',
72
+ 'gamekit': 'GameKit',
73
+ 'game-kit': 'GameKit',
74
+ 'game_kit': 'GameKit',
75
+ 'gameplaykit': 'GameplayKit',
76
+ 'gameplay-kit': 'GameplayKit',
77
+ 'gameplay_kit': 'GameplayKit',
78
+ 'gamecenter': 'Game Center',
79
+ 'game-center': 'Game Center',
80
+ 'game_center': 'Game Center',
81
+ 'metal': 'Metal',
82
+ 'metalkit': 'MetalKit',
83
+ 'metal-kit': 'MetalKit',
84
+ 'metal_kit': 'MetalKit',
85
+ 'metalperformanceshaders': 'Metal Performance Shaders',
86
+ 'metal-performance-shaders': 'Metal Performance Shaders',
87
+ 'metal_performance_shaders': 'Metal Performance Shaders',
88
+ 'mps': 'Metal Performance Shaders',
89
+ 'coregraphics': 'Core Graphics',
90
+ 'core-graphics': 'Core Graphics',
91
+ 'core_graphics': 'Core Graphics',
92
+ 'cg': 'Core Graphics',
93
+ 'coreimage': 'Core Image',
94
+ 'core-image': 'Core Image',
95
+ 'core_image': 'Core Image',
96
+ 'ci': 'Core Image',
97
+ 'coreanimation': 'Core Animation',
98
+ 'core-animation': 'Core Animation',
99
+ 'core_animation': 'Core Animation',
100
+ 'quartzcore': 'Core Animation',
101
+ 'quartz-core': 'Core Animation',
102
+ 'quartz_core': 'Core Animation',
103
+ 'vision': 'Vision',
104
+ 'visionkit': 'VisionKit',
105
+ 'vision-kit': 'VisionKit',
106
+ 'vision_kit': 'VisionKit',
107
+ 'imageio': 'Image I/O',
108
+ 'image-io': 'Image I/O',
109
+ 'image_io': 'Image I/O',
110
+ // Media & Audio
111
+ 'avfoundation': 'AVFoundation',
112
+ 'av-foundation': 'AVFoundation',
113
+ 'av_foundation': 'AVFoundation',
114
+ 'avkit': 'AVKit',
115
+ 'av-kit': 'AVKit',
116
+ 'av_kit': 'AVKit',
117
+ 'coreaudio': 'Core Audio',
118
+ 'core-audio': 'Core Audio',
119
+ 'core_audio': 'Core Audio',
120
+ 'coremidi': 'Core MIDI',
121
+ 'core-midi': 'Core MIDI',
122
+ 'core_midi': 'Core MIDI',
123
+ 'audiotoolbox': 'Audio Toolbox',
124
+ 'audio-toolbox': 'Audio Toolbox',
125
+ 'audio_toolbox': 'Audio Toolbox',
126
+ 'audiounit': 'AudioUnit',
127
+ 'audio-unit': 'AudioUnit',
128
+ 'audio_unit': 'AudioUnit',
129
+ 'musickit': 'MusicKit',
130
+ 'music-kit': 'MusicKit',
131
+ 'music_kit': 'MusicKit',
132
+ 'mediaplayer': 'Media Player',
133
+ 'media-player': 'Media Player',
134
+ 'media_player': 'Media Player',
135
+ 'photokit': 'PhotoKit',
136
+ 'photo-kit': 'PhotoKit',
137
+ 'photo_kit': 'PhotoKit',
138
+ 'photos': 'PhotoKit',
139
+ 'photosui': 'PhotosUI',
140
+ 'photos-ui': 'PhotosUI',
141
+ 'photos_ui': 'PhotosUI',
142
+ // Services & APIs
143
+ 'storekit': 'StoreKit',
144
+ 'store-kit': 'StoreKit',
145
+ 'store_kit': 'StoreKit',
146
+ 'storekit2': 'StoreKit',
147
+ 'store-kit-2': 'StoreKit',
148
+ 'store_kit_2': 'StoreKit',
149
+ 'healthkit': 'HealthKit',
150
+ 'health-kit': 'HealthKit',
151
+ 'health_kit': 'HealthKit',
152
+ 'homekit': 'HomeKit',
153
+ 'home-kit': 'HomeKit',
154
+ 'home_kit': 'HomeKit',
155
+ 'mapkit': 'MapKit',
156
+ 'map-kit': 'MapKit',
157
+ 'map_kit': 'MapKit',
158
+ 'corelocation': 'Core Location',
159
+ 'core-location': 'Core Location',
160
+ 'core_location': 'Core Location',
161
+ 'pushkit': 'PushKit',
162
+ 'push-kit': 'PushKit',
163
+ 'push_kit': 'PushKit',
164
+ 'usernotifications': 'User Notifications',
165
+ 'user-notifications': 'User Notifications',
166
+ 'user_notifications': 'User Notifications',
167
+ 'notificationcenter': 'Notification Center',
168
+ 'notification-center': 'Notification Center',
169
+ 'notification_center': 'Notification Center',
170
+ 'eventkit': 'EventKit',
171
+ 'event-kit': 'EventKit',
172
+ 'event_kit': 'EventKit',
173
+ 'eventkitui': 'EventKitUI',
174
+ 'event-kit-ui': 'EventKitUI',
175
+ 'event_kit_ui': 'EventKitUI',
176
+ 'contacts': 'Contacts',
177
+ 'contactsui': 'ContactsUI',
178
+ 'contacts-ui': 'ContactsUI',
179
+ 'contacts_ui': 'ContactsUI',
180
+ 'messageui': 'MessageUI',
181
+ 'message-ui': 'MessageUI',
182
+ 'message_ui': 'MessageUI',
183
+ 'messages': 'Messages',
184
+ 'callkit': 'CallKit',
185
+ 'call-kit': 'CallKit',
186
+ 'call_kit': 'CallKit',
187
+ 'alarmkit': 'AlarmKit',
188
+ 'alarm-kit': 'AlarmKit',
189
+ 'alarm_kit': 'AlarmKit',
190
+ // Machine Learning & AI
191
+ 'coreml': 'Core ML',
192
+ 'core-ml': 'Core ML',
193
+ 'core_ml': 'Core ML',
194
+ 'createml': 'Create ML',
195
+ 'create-ml': 'Create ML',
196
+ 'create_ml': 'Create ML',
197
+ 'naturallanguage': 'Natural Language',
198
+ 'natural-language': 'Natural Language',
199
+ 'natural_language': 'Natural Language',
200
+ 'nlp': 'Natural Language',
201
+ 'speech': 'Speech',
202
+ 'speechframework': 'Speech',
203
+ 'speech-framework': 'Speech',
204
+ 'speech_framework': 'Speech',
205
+ 'soundanalysis': 'Sound Analysis',
206
+ 'sound-analysis': 'Sound Analysis',
207
+ 'sound_analysis': 'Sound Analysis',
208
+ // Networking
209
+ 'network': 'Network',
210
+ 'networkextension': 'Network Extension',
211
+ 'network-extension': 'Network Extension',
212
+ 'network_extension': 'Network Extension',
213
+ 'nsurlsession': 'URLSession',
214
+ 'urlsession': 'URLSession',
215
+ 'url-session': 'URLSession',
216
+ 'url_session': 'URLSession',
217
+ 'cfnetwork': 'CFNetwork',
218
+ 'cf-network': 'CFNetwork',
219
+ 'cf_network': 'CFNetwork',
220
+ 'bonjour': 'Bonjour',
221
+ 'netservice': 'Bonjour',
222
+ 'net-service': 'Bonjour',
223
+ 'net_service': 'Bonjour',
224
+ // Security & Privacy
225
+ 'security': 'Security',
226
+ 'localauthentication': 'Local Authentication',
227
+ 'local-authentication': 'Local Authentication',
228
+ 'local_authentication': 'Local Authentication',
229
+ 'biometrics': 'Local Authentication',
230
+ 'touchid': 'Local Authentication',
231
+ 'touch-id': 'Local Authentication',
232
+ 'touch_id': 'Local Authentication',
233
+ 'faceid': 'Local Authentication',
234
+ 'face-id': 'Local Authentication',
235
+ 'face_id': 'Local Authentication',
236
+ 'cryptokit': 'CryptoKit',
237
+ 'crypto-kit': 'CryptoKit',
238
+ 'crypto_kit': 'CryptoKit',
239
+ 'apptrackingtransparency': 'App Tracking Transparency',
240
+ 'app-tracking-transparency': 'App Tracking Transparency',
241
+ 'app_tracking_transparency': 'App Tracking Transparency',
242
+ 'att': 'App Tracking Transparency',
243
+ // System & Hardware
244
+ 'corebluetooth': 'Core Bluetooth',
245
+ 'core-bluetooth': 'Core Bluetooth',
246
+ 'core_bluetooth': 'Core Bluetooth',
247
+ 'bluetooth': 'Core Bluetooth',
248
+ 'ble': 'Core Bluetooth',
249
+ 'coremotion': 'Core Motion',
250
+ 'core-motion': 'Core Motion',
251
+ 'core_motion': 'Core Motion',
252
+ 'motion': 'Core Motion',
253
+ 'accelerometer': 'Core Motion',
254
+ 'gyroscope': 'Core Motion',
255
+ 'magnetometer': 'Core Motion',
256
+ 'devicemotion': 'Core Motion',
257
+ 'device-motion': 'Core Motion',
258
+ 'device_motion': 'Core Motion',
259
+ 'corenfc': 'Core NFC',
260
+ 'core-nfc': 'Core NFC',
261
+ 'core_nfc': 'Core NFC',
262
+ 'nfc': 'Core NFC',
263
+ 'corewlan': 'Core WLAN',
264
+ 'core-wlan': 'Core WLAN',
265
+ 'core_wlan': 'Core WLAN',
266
+ 'wifi': 'Core WLAN',
267
+ 'wlan': 'Core WLAN',
268
+ // Development Tools
269
+ 'xctest': 'XCTest',
270
+ 'xc-test': 'XCTest',
271
+ 'xc_test': 'XCTest',
272
+ 'testing': 'XCTest',
273
+ 'unittest': 'XCTest',
274
+ 'unit-test': 'XCTest',
275
+ 'unit_test': 'XCTest',
276
+ 'xcode': 'Xcode',
277
+ 'instruments': 'Instruments',
278
+ 'simulator': 'Simulator',
279
+ 'playgrounds': 'Swift Playgrounds',
280
+ 'swift-playgrounds': 'Swift Playgrounds',
281
+ 'swift_playgrounds': 'Swift Playgrounds',
282
+ 'swift playgrounds': 'Swift Playgrounds',
283
+ // watchOS Specific
284
+ 'watchconnectivity': 'Watch Connectivity',
285
+ 'watch-connectivity': 'Watch Connectivity',
286
+ 'watch_connectivity': 'Watch Connectivity',
287
+ 'clockkit': 'ClockKit',
288
+ 'clock-kit': 'ClockKit',
289
+ 'clock_kit': 'ClockKit',
290
+ 'complications': 'ClockKit',
291
+ // tvOS Specific
292
+ 'tvservices': 'TVServices',
293
+ 'tv-services': 'TVServices',
294
+ 'tv_services': 'TVServices',
295
+ 'tvmlkit': 'TVMLKit',
296
+ 'tvml-kit': 'TVMLKit',
297
+ 'tvml_kit': 'TVMLKit',
298
+ 'tvml': 'TVMLKit',
299
+ // macOS Specific
300
+ 'appstoreconnectapi': 'App Store Connect API',
301
+ 'app-store-connect-api': 'App Store Connect API',
302
+ 'app_store_connect_api': 'App Store Connect API',
303
+ 'automator': 'Automator',
304
+ 'applescript': 'AppleScript',
305
+ 'apple-script': 'AppleScript',
306
+ 'apple_script': 'AppleScript',
307
+ 'scriptingbridge': 'Scripting Bridge',
308
+ 'scripting-bridge': 'Scripting Bridge',
309
+ 'scripting_bridge': 'Scripting Bridge',
310
+ 'osascript': 'AppleScript',
311
+ 'collaboration': 'Collaboration',
312
+ 'discrecording': 'Disc Recording',
313
+ 'disc-recording': 'Disc Recording',
314
+ 'disc_recording': 'Disc Recording',
315
+ 'dvdplayback': 'DVD Playback',
316
+ 'dvd-playback': 'DVD Playback',
317
+ 'dvd_playback': 'DVD Playback',
318
+ 'findersync': 'FinderSync',
319
+ 'finder-sync': 'FinderSync',
320
+ 'finder_sync': 'FinderSync',
321
+ 'imagekit': 'ImageKit',
322
+ 'image-kit': 'ImageKit',
323
+ 'image_kit': 'ImageKit',
324
+ 'inputmethodkit': 'Input Method Kit',
325
+ 'input-method-kit': 'Input Method Kit',
326
+ 'input_method_kit': 'Input Method Kit',
327
+ 'instantmessage': 'Instant Message',
328
+ 'instant-message': 'Instant Message',
329
+ 'instant_message': 'Instant Message',
330
+ 'latentsemanticmapping': 'Latent Semantic Mapping',
331
+ 'latent-semantic-mapping': 'Latent Semantic Mapping',
332
+ 'latent_semantic_mapping': 'Latent Semantic Mapping',
333
+ 'lsm': 'Latent Semantic Mapping',
334
+ 'pubsub': 'PubSub',
335
+ 'pub-sub': 'PubSub',
336
+ 'pub_sub': 'PubSub',
337
+ 'quartz': 'Quartz',
338
+ 'quartzfilters': 'Quartz Filters',
339
+ 'quartz-filters': 'Quartz Filters',
340
+ 'quartz_filters': 'Quartz Filters',
341
+ 'quartzcomposer': 'Quartz Composer',
342
+ 'quartz-composer': 'Quartz Composer',
343
+ 'quartz_composer': 'Quartz Composer',
344
+ 'quicklook': 'Quick Look',
345
+ 'quick-look': 'Quick Look',
346
+ 'quick_look': 'Quick Look',
347
+ 'ql': 'Quick Look',
348
+ 'screensaver': 'Screen Saver',
349
+ 'screen-saver': 'Screen Saver',
350
+ 'screen_saver': 'Screen Saver',
351
+ 'searchkit': 'SearchKit',
352
+ 'search-kit': 'SearchKit',
353
+ 'search_kit': 'SearchKit',
354
+ 'servicemanagemnt': 'Service Management',
355
+ 'service-management': 'Service Management',
356
+ 'service_management': 'Service Management',
357
+ 'syncservices': 'Sync Services',
358
+ 'sync-services': 'Sync Services',
359
+ 'sync_services': 'Sync Services',
360
+ 'systemconfiguration': 'System Configuration',
361
+ 'system-configuration': 'System Configuration',
362
+ 'system_configuration': 'System Configuration',
363
+ 'systemextensions': 'System Extensions',
364
+ 'system-extensions': 'System Extensions',
365
+ 'system_extensions': 'System Extensions',
366
+ 'webkit': 'WebKit',
367
+ 'web-kit': 'WebKit',
368
+ 'web_kit': 'WebKit',
369
+ 'webkit2': 'WebKit',
370
+ 'web-kit-2': 'WebKit',
371
+ 'web_kit_2': 'WebKit',
372
+ };
373
+ /**
374
+ * Alternative framework names and common aliases
375
+ */
376
+ export const FRAMEWORK_ALIASES = {
377
+ 'SwiftUI': ['swiftui', 'swift-ui', 'swift_ui'],
378
+ 'UIKit': ['uikit', 'ui-kit', 'ui_kit'],
379
+ 'AppKit': ['appkit', 'app-kit', 'app_kit'],
380
+ 'Core Data': ['coredata', 'core-data', 'core_data'],
381
+ 'CloudKit': ['cloudkit', 'cloud-kit', 'cloud_kit'],
382
+ 'Core Graphics': ['coregraphics', 'core-graphics', 'core_graphics', 'cg'],
383
+ 'Core Image': ['coreimage', 'core-image', 'core_image', 'ci'],
384
+ 'Core Animation': ['coreanimation', 'core-animation', 'core_animation', 'quartzcore'],
385
+ 'AVFoundation': ['avfoundation', 'av-foundation', 'av_foundation'],
386
+ 'Metal': ['metal'],
387
+ 'Vision': ['vision'],
388
+ 'Core ML': ['coreml', 'core-ml', 'core_ml'],
389
+ 'ARKit': ['arkit', 'ar-kit', 'ar_kit'],
390
+ 'RealityKit': ['realitykit', 'reality-kit', 'reality_kit'],
391
+ 'SceneKit': ['scenekit', 'scene-kit', 'scene_kit'],
392
+ 'SpriteKit': ['spritekit', 'sprite-kit', 'sprite_kit'],
393
+ 'GameKit': ['gamekit', 'game-kit', 'game_kit'],
394
+ 'HealthKit': ['healthkit', 'health-kit', 'health_kit'],
395
+ 'HomeKit': ['homekit', 'home-kit', 'home_kit'],
396
+ 'MapKit': ['mapkit', 'map-kit', 'map_kit'],
397
+ 'StoreKit': ['storekit', 'store-kit', 'store_kit'],
398
+ 'AlarmKit': ['alarmkit', 'alarm-kit', 'alarm_kit'],
399
+ 'WebKit': ['webkit', 'web-kit', 'web_kit'],
400
+ };
401
+ /**
402
+ * Framework categories for organization
403
+ */
404
+ export const FRAMEWORK_CATEGORIES = {
405
+ 'UI': ['SwiftUI', 'UIKit', 'AppKit', 'WidgetKit', 'WatchKit'],
406
+ 'Graphics': ['Core Graphics', 'Core Image', 'Core Animation', 'Metal'],
407
+ 'Games': ['ARKit', 'RealityKit', 'SceneKit', 'SpriteKit', 'GameKit'],
408
+ 'Media': ['AVFoundation', 'Core Audio', 'PhotoKit', 'MusicKit'],
409
+ 'Data': ['Core Data', 'CloudKit', 'UserDefaults', 'Keychain Services'],
410
+ 'ML': ['Core ML', 'Create ML', 'Natural Language', 'Vision', 'Speech'],
411
+ 'Services': ['HealthKit', 'HomeKit', 'MapKit', 'StoreKit', 'AlarmKit'],
412
+ 'System': ['Core Bluetooth', 'Core Motion', 'Core Location'],
413
+ 'Foundation': ['Foundation', 'Combine', 'Swift'],
414
+ };
415
+ /**
416
+ * Normalize a framework name to its canonical Apple form
417
+ *
418
+ * @param framework - The framework name to normalize (case-insensitive)
419
+ * @returns The canonical framework name, or the original if no mapping exists
420
+ */
421
+ export function normalizeFrameworkName(framework) {
422
+ if (!framework || typeof framework !== 'string') {
423
+ return '';
424
+ }
425
+ const trimmed = framework.trim();
426
+ if (!trimmed) {
427
+ return '';
428
+ }
429
+ const normalized = trimmed.toLowerCase();
430
+ // Direct lookup in mappings
431
+ if (FRAMEWORK_MAPPINGS[normalized]) {
432
+ return FRAMEWORK_MAPPINGS[normalized];
433
+ }
434
+ // Try exact case match (for already canonical names)
435
+ const exactMatch = Object.values(FRAMEWORK_MAPPINGS).find(canonical => canonical.toLowerCase() === normalized);
436
+ if (exactMatch) {
437
+ return exactMatch;
438
+ }
439
+ // Return original with proper casing (first letter capitalized)
440
+ return trimmed.charAt(0).toUpperCase() + trimmed.slice(1);
441
+ }
442
+ /**
443
+ * Get all possible aliases for a framework
444
+ *
445
+ * @param framework - The canonical framework name
446
+ * @returns Array of all known aliases for the framework
447
+ */
448
+ export function getFrameworkAliases(framework) {
449
+ const canonical = normalizeFrameworkName(framework);
450
+ return FRAMEWORK_ALIASES[canonical] || [];
451
+ }
452
+ /**
453
+ * Check if a framework name is valid (has a known mapping)
454
+ *
455
+ * @param framework - The framework name to check
456
+ * @returns True if the framework is recognized
457
+ */
458
+ export function isValidFramework(framework) {
459
+ if (!framework || typeof framework !== 'string') {
460
+ return false;
461
+ }
462
+ const normalized = framework.trim().toLowerCase();
463
+ return !!FRAMEWORK_MAPPINGS[normalized] ||
464
+ Object.values(FRAMEWORK_MAPPINGS).some(canonical => canonical.toLowerCase() === normalized);
465
+ }
466
+ /**
467
+ * Get frameworks by category
468
+ *
469
+ * @param category - The category name
470
+ * @returns Array of framework names in the category
471
+ */
472
+ export function getFrameworksByCategory(category) {
473
+ return [...(FRAMEWORK_CATEGORIES[category] || [])];
474
+ }
475
+ /**
476
+ * Find the category of a framework
477
+ *
478
+ * @param framework - The framework name
479
+ * @returns The category name or null if not found
480
+ */
481
+ export function getFrameworkCategory(framework) {
482
+ const canonical = normalizeFrameworkName(framework);
483
+ for (const [category, frameworks] of Object.entries(FRAMEWORK_CATEGORIES)) {
484
+ if (frameworks.includes(canonical)) {
485
+ return category;
486
+ }
487
+ }
488
+ return null;
489
+ }
490
+ /**
491
+ * Search for frameworks by partial name or description
492
+ *
493
+ * @param query - The search query
494
+ * @returns Array of matching framework names
495
+ */
496
+ export function searchFrameworks(query) {
497
+ if (!query || typeof query !== 'string') {
498
+ return [];
499
+ }
500
+ const searchTerm = query.trim().toLowerCase();
501
+ const matches = new Set();
502
+ // Search in canonical names
503
+ Object.values(FRAMEWORK_MAPPINGS).forEach(canonical => {
504
+ if (canonical.toLowerCase().includes(searchTerm)) {
505
+ matches.add(canonical);
506
+ }
507
+ });
508
+ // Search in aliases
509
+ Object.entries(FRAMEWORK_MAPPINGS).forEach(([alias, canonical]) => {
510
+ if (alias.includes(searchTerm)) {
511
+ matches.add(canonical);
512
+ }
513
+ });
514
+ return Array.from(matches).sort();
515
+ }
516
+ /**
517
+ * Get comprehensive framework information
518
+ *
519
+ * @param framework - The framework name
520
+ * @returns Object with framework details
521
+ */
522
+ export function getFrameworkInfo(framework) {
523
+ const canonical = normalizeFrameworkName(framework);
524
+ const aliases = getFrameworkAliases(canonical);
525
+ const category = getFrameworkCategory(canonical);
526
+ const isValid = isValidFramework(framework);
527
+ return {
528
+ canonical,
529
+ aliases,
530
+ category,
531
+ isValid,
532
+ };
533
+ }
534
+ //# sourceMappingURL=framework-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework-mapper.js","sourceRoot":"","sources":["../../src/utils/framework-mapper.ts"],"names":[],"mappings":"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"}