jamdesk 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 (435) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +323 -0
  3. package/bin/jamdesk.js +76 -0
  4. package/dist/__tests__/integration/deprecated-components.integration.test.d.ts +8 -0
  5. package/dist/__tests__/integration/deprecated-components.integration.test.d.ts.map +1 -0
  6. package/dist/__tests__/integration/deprecated-components.integration.test.js +165 -0
  7. package/dist/__tests__/integration/deprecated-components.integration.test.js.map +1 -0
  8. package/dist/__tests__/integration/migrate.integration.test.d.ts +2 -0
  9. package/dist/__tests__/integration/migrate.integration.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/migrate.integration.test.js +64 -0
  11. package/dist/__tests__/integration/migrate.integration.test.js.map +1 -0
  12. package/dist/__tests__/integration/prepublish.integration.test.d.ts +2 -0
  13. package/dist/__tests__/integration/prepublish.integration.test.d.ts.map +1 -0
  14. package/dist/__tests__/integration/prepublish.integration.test.js +27 -0
  15. package/dist/__tests__/integration/prepublish.integration.test.js.map +1 -0
  16. package/dist/__tests__/integration/validate.integration.test.d.ts +2 -0
  17. package/dist/__tests__/integration/validate.integration.test.d.ts.map +1 -0
  18. package/dist/__tests__/integration/validate.integration.test.js +56 -0
  19. package/dist/__tests__/integration/validate.integration.test.js.map +1 -0
  20. package/dist/__tests__/unit/deploy-templates.test.d.ts +2 -0
  21. package/dist/__tests__/unit/deploy-templates.test.d.ts.map +1 -0
  22. package/dist/__tests__/unit/deploy-templates.test.js +124 -0
  23. package/dist/__tests__/unit/deploy-templates.test.js.map +1 -0
  24. package/dist/__tests__/unit/deprecated-components-sync.test.d.ts +2 -0
  25. package/dist/__tests__/unit/deprecated-components-sync.test.d.ts.map +1 -0
  26. package/dist/__tests__/unit/deprecated-components-sync.test.js +69 -0
  27. package/dist/__tests__/unit/deprecated-components-sync.test.js.map +1 -0
  28. package/dist/__tests__/unit/deps-sync.test.d.ts +14 -0
  29. package/dist/__tests__/unit/deps-sync.test.d.ts.map +1 -0
  30. package/dist/__tests__/unit/deps-sync.test.js +166 -0
  31. package/dist/__tests__/unit/deps-sync.test.js.map +1 -0
  32. package/dist/__tests__/unit/docs-config.test.d.ts +2 -0
  33. package/dist/__tests__/unit/docs-config.test.d.ts.map +1 -0
  34. package/dist/__tests__/unit/docs-config.test.js +288 -0
  35. package/dist/__tests__/unit/docs-config.test.js.map +1 -0
  36. package/dist/__tests__/unit/errors.test.d.ts +2 -0
  37. package/dist/__tests__/unit/errors.test.d.ts.map +1 -0
  38. package/dist/__tests__/unit/errors.test.js +27 -0
  39. package/dist/__tests__/unit/errors.test.js.map +1 -0
  40. package/dist/__tests__/unit/extract-hooks.test.d.ts +5 -0
  41. package/dist/__tests__/unit/extract-hooks.test.d.ts.map +1 -0
  42. package/dist/__tests__/unit/extract-hooks.test.js +205 -0
  43. package/dist/__tests__/unit/extract-hooks.test.js.map +1 -0
  44. package/dist/__tests__/unit/frontmatter-sync.test.d.ts +8 -0
  45. package/dist/__tests__/unit/frontmatter-sync.test.d.ts.map +1 -0
  46. package/dist/__tests__/unit/frontmatter-sync.test.js +26 -0
  47. package/dist/__tests__/unit/frontmatter-sync.test.js.map +1 -0
  48. package/dist/__tests__/unit/mdx-validator.test.d.ts +2 -0
  49. package/dist/__tests__/unit/mdx-validator.test.d.ts.map +1 -0
  50. package/dist/__tests__/unit/mdx-validator.test.js +264 -0
  51. package/dist/__tests__/unit/mdx-validator.test.js.map +1 -0
  52. package/dist/__tests__/unit/migrate-convert.test.d.ts +2 -0
  53. package/dist/__tests__/unit/migrate-convert.test.d.ts.map +1 -0
  54. package/dist/__tests__/unit/migrate-convert.test.js +297 -0
  55. package/dist/__tests__/unit/migrate-convert.test.js.map +1 -0
  56. package/dist/__tests__/unit/migrate-detect.test.d.ts +2 -0
  57. package/dist/__tests__/unit/migrate-detect.test.d.ts.map +1 -0
  58. package/dist/__tests__/unit/migrate-detect.test.js +35 -0
  59. package/dist/__tests__/unit/migrate-detect.test.js.map +1 -0
  60. package/dist/__tests__/unit/migrate-mdx.test.d.ts +2 -0
  61. package/dist/__tests__/unit/migrate-mdx.test.d.ts.map +1 -0
  62. package/dist/__tests__/unit/migrate-mdx.test.js +158 -0
  63. package/dist/__tests__/unit/migrate-mdx.test.js.map +1 -0
  64. package/dist/__tests__/unit/openapi.test.d.ts +2 -0
  65. package/dist/__tests__/unit/openapi.test.d.ts.map +1 -0
  66. package/dist/__tests__/unit/openapi.test.js +52 -0
  67. package/dist/__tests__/unit/openapi.test.js.map +1 -0
  68. package/dist/__tests__/unit/package-config.test.d.ts +2 -0
  69. package/dist/__tests__/unit/package-config.test.d.ts.map +1 -0
  70. package/dist/__tests__/unit/package-config.test.js +63 -0
  71. package/dist/__tests__/unit/package-config.test.js.map +1 -0
  72. package/dist/__tests__/unit/port.test.d.ts +2 -0
  73. package/dist/__tests__/unit/port.test.d.ts.map +1 -0
  74. package/dist/__tests__/unit/port.test.js +20 -0
  75. package/dist/__tests__/unit/port.test.js.map +1 -0
  76. package/dist/__tests__/unit/vendored-sync.test.d.ts +14 -0
  77. package/dist/__tests__/unit/vendored-sync.test.d.ts.map +1 -0
  78. package/dist/__tests__/unit/vendored-sync.test.js +90 -0
  79. package/dist/__tests__/unit/vendored-sync.test.js.map +1 -0
  80. package/dist/commands/broken-links.d.ts +11 -0
  81. package/dist/commands/broken-links.d.ts.map +1 -0
  82. package/dist/commands/broken-links.js +95 -0
  83. package/dist/commands/broken-links.js.map +1 -0
  84. package/dist/commands/clean.d.ts +7 -0
  85. package/dist/commands/clean.d.ts.map +1 -0
  86. package/dist/commands/clean.js +59 -0
  87. package/dist/commands/clean.js.map +1 -0
  88. package/dist/commands/deploy/cloudflare.d.ts +12 -0
  89. package/dist/commands/deploy/cloudflare.d.ts.map +1 -0
  90. package/dist/commands/deploy/cloudflare.js +409 -0
  91. package/dist/commands/deploy/cloudflare.js.map +1 -0
  92. package/dist/commands/deploy/templates.d.ts +23 -0
  93. package/dist/commands/deploy/templates.d.ts.map +1 -0
  94. package/dist/commands/deploy/templates.js +179 -0
  95. package/dist/commands/deploy/templates.js.map +1 -0
  96. package/dist/commands/deploy/types.d.ts +19 -0
  97. package/dist/commands/deploy/types.d.ts.map +1 -0
  98. package/dist/commands/deploy/types.js +5 -0
  99. package/dist/commands/deploy/types.js.map +1 -0
  100. package/dist/commands/dev.d.ts +14 -0
  101. package/dist/commands/dev.d.ts.map +1 -0
  102. package/dist/commands/dev.js +817 -0
  103. package/dist/commands/dev.js.map +1 -0
  104. package/dist/commands/doctor.d.ts +7 -0
  105. package/dist/commands/doctor.d.ts.map +1 -0
  106. package/dist/commands/doctor.js +159 -0
  107. package/dist/commands/doctor.js.map +1 -0
  108. package/dist/commands/init.d.ts +7 -0
  109. package/dist/commands/init.d.ts.map +1 -0
  110. package/dist/commands/init.js +96 -0
  111. package/dist/commands/init.js.map +1 -0
  112. package/dist/commands/migrate/convert-mdx.d.ts +50 -0
  113. package/dist/commands/migrate/convert-mdx.d.ts.map +1 -0
  114. package/dist/commands/migrate/convert-mdx.js +108 -0
  115. package/dist/commands/migrate/convert-mdx.js.map +1 -0
  116. package/dist/commands/migrate/convert.d.ts +80 -0
  117. package/dist/commands/migrate/convert.d.ts.map +1 -0
  118. package/dist/commands/migrate/convert.js +158 -0
  119. package/dist/commands/migrate/convert.js.map +1 -0
  120. package/dist/commands/migrate/detect.d.ts +31 -0
  121. package/dist/commands/migrate/detect.d.ts.map +1 -0
  122. package/dist/commands/migrate/detect.js +62 -0
  123. package/dist/commands/migrate/detect.js.map +1 -0
  124. package/dist/commands/migrate/extract-hooks.d.ts +71 -0
  125. package/dist/commands/migrate/extract-hooks.d.ts.map +1 -0
  126. package/dist/commands/migrate/extract-hooks.js +473 -0
  127. package/dist/commands/migrate/extract-hooks.js.map +1 -0
  128. package/dist/commands/migrate/index.d.ts +17 -0
  129. package/dist/commands/migrate/index.d.ts.map +1 -0
  130. package/dist/commands/migrate/index.js +282 -0
  131. package/dist/commands/migrate/index.js.map +1 -0
  132. package/dist/commands/migrate/prompts.d.ts +22 -0
  133. package/dist/commands/migrate/prompts.d.ts.map +1 -0
  134. package/dist/commands/migrate/prompts.js +67 -0
  135. package/dist/commands/migrate/prompts.js.map +1 -0
  136. package/dist/commands/migrate/types.d.ts +22 -0
  137. package/dist/commands/migrate/types.d.ts.map +1 -0
  138. package/dist/commands/migrate/types.js +26 -0
  139. package/dist/commands/migrate/types.js.map +1 -0
  140. package/dist/commands/openapi-check.d.ts +11 -0
  141. package/dist/commands/openapi-check.d.ts.map +1 -0
  142. package/dist/commands/openapi-check.js +88 -0
  143. package/dist/commands/openapi-check.js.map +1 -0
  144. package/dist/commands/rename.d.ts +10 -0
  145. package/dist/commands/rename.d.ts.map +1 -0
  146. package/dist/commands/rename.js +125 -0
  147. package/dist/commands/rename.js.map +1 -0
  148. package/dist/commands/update.d.ts +10 -0
  149. package/dist/commands/update.d.ts.map +1 -0
  150. package/dist/commands/update.js +57 -0
  151. package/dist/commands/update.js.map +1 -0
  152. package/dist/commands/validate.d.ts +12 -0
  153. package/dist/commands/validate.d.ts.map +1 -0
  154. package/dist/commands/validate.js +163 -0
  155. package/dist/commands/validate.js.map +1 -0
  156. package/dist/index.d.ts +9 -0
  157. package/dist/index.d.ts.map +1 -0
  158. package/dist/index.js +334 -0
  159. package/dist/index.js.map +1 -0
  160. package/dist/lib/config.d.ts +7 -0
  161. package/dist/lib/config.d.ts.map +1 -0
  162. package/dist/lib/config.js +18 -0
  163. package/dist/lib/config.js.map +1 -0
  164. package/dist/lib/deprecated-components.d.ts +72 -0
  165. package/dist/lib/deprecated-components.d.ts.map +1 -0
  166. package/dist/lib/deprecated-components.js +138 -0
  167. package/dist/lib/deprecated-components.js.map +1 -0
  168. package/dist/lib/deps.d.ts +17 -0
  169. package/dist/lib/deps.d.ts.map +1 -0
  170. package/dist/lib/deps.js +186 -0
  171. package/dist/lib/deps.js.map +1 -0
  172. package/dist/lib/docs-config.d.ts +67 -0
  173. package/dist/lib/docs-config.d.ts.map +1 -0
  174. package/dist/lib/docs-config.js +294 -0
  175. package/dist/lib/docs-config.js.map +1 -0
  176. package/dist/lib/errors.d.ts +23 -0
  177. package/dist/lib/errors.d.ts.map +1 -0
  178. package/dist/lib/errors.js +32 -0
  179. package/dist/lib/errors.js.map +1 -0
  180. package/dist/lib/frontmatter-utils.d.ts +25 -0
  181. package/dist/lib/frontmatter-utils.d.ts.map +1 -0
  182. package/dist/lib/frontmatter-utils.js +64 -0
  183. package/dist/lib/frontmatter-utils.js.map +1 -0
  184. package/dist/lib/mdx-validator.d.ts +27 -0
  185. package/dist/lib/mdx-validator.d.ts.map +1 -0
  186. package/dist/lib/mdx-validator.js +148 -0
  187. package/dist/lib/mdx-validator.js.map +1 -0
  188. package/dist/lib/navigation-validator.d.ts +31 -0
  189. package/dist/lib/navigation-validator.d.ts.map +1 -0
  190. package/dist/lib/navigation-validator.js +75 -0
  191. package/dist/lib/navigation-validator.js.map +1 -0
  192. package/dist/lib/normalize-config.d.ts +57 -0
  193. package/dist/lib/normalize-config.d.ts.map +1 -0
  194. package/dist/lib/normalize-config.js +63 -0
  195. package/dist/lib/normalize-config.js.map +1 -0
  196. package/dist/lib/openapi/cache.d.ts +40 -0
  197. package/dist/lib/openapi/cache.d.ts.map +1 -0
  198. package/dist/lib/openapi/cache.js +76 -0
  199. package/dist/lib/openapi/cache.js.map +1 -0
  200. package/dist/lib/openapi/errors.d.ts +36 -0
  201. package/dist/lib/openapi/errors.d.ts.map +1 -0
  202. package/dist/lib/openapi/errors.js +162 -0
  203. package/dist/lib/openapi/errors.js.map +1 -0
  204. package/dist/lib/openapi/index.d.ts +10 -0
  205. package/dist/lib/openapi/index.d.ts.map +1 -0
  206. package/dist/lib/openapi/index.js +12 -0
  207. package/dist/lib/openapi/index.js.map +1 -0
  208. package/dist/lib/openapi/types.d.ts +198 -0
  209. package/dist/lib/openapi/types.d.ts.map +1 -0
  210. package/dist/lib/openapi/types.js +8 -0
  211. package/dist/lib/openapi/types.js.map +1 -0
  212. package/dist/lib/openapi/validator.d.ts +45 -0
  213. package/dist/lib/openapi/validator.d.ts.map +1 -0
  214. package/dist/lib/openapi/validator.js +128 -0
  215. package/dist/lib/openapi/validator.js.map +1 -0
  216. package/dist/lib/openapi.d.ts +7 -0
  217. package/dist/lib/openapi.d.ts.map +1 -0
  218. package/dist/lib/openapi.js +7 -0
  219. package/dist/lib/openapi.js.map +1 -0
  220. package/dist/lib/output.d.ts +14 -0
  221. package/dist/lib/output.d.ts.map +1 -0
  222. package/dist/lib/output.js +19 -0
  223. package/dist/lib/output.js.map +1 -0
  224. package/dist/lib/path-security.d.ts +23 -0
  225. package/dist/lib/path-security.d.ts.map +1 -0
  226. package/dist/lib/path-security.js +35 -0
  227. package/dist/lib/path-security.js.map +1 -0
  228. package/dist/lib/port.d.ts +18 -0
  229. package/dist/lib/port.d.ts.map +1 -0
  230. package/dist/lib/port.js +65 -0
  231. package/dist/lib/port.js.map +1 -0
  232. package/dist/lib/spinner.d.ts +4 -0
  233. package/dist/lib/spinner.d.ts.map +1 -0
  234. package/dist/lib/spinner.js +16 -0
  235. package/dist/lib/spinner.js.map +1 -0
  236. package/dist/lib/version.d.ts +2 -0
  237. package/dist/lib/version.d.ts.map +1 -0
  238. package/dist/lib/version.js +49 -0
  239. package/dist/lib/version.js.map +1 -0
  240. package/dist/utils/update-checker.d.ts +34 -0
  241. package/dist/utils/update-checker.d.ts.map +1 -0
  242. package/dist/utils/update-checker.js +142 -0
  243. package/dist/utils/update-checker.js.map +1 -0
  244. package/package.json +125 -0
  245. package/templates/docs.json +11 -0
  246. package/templates/introduction.mdx +19 -0
  247. package/templates/quickstart.mdx +20 -0
  248. package/vendored/app/[[...slug]]/error.tsx +103 -0
  249. package/vendored/app/[[...slug]]/page.tsx +690 -0
  250. package/vendored/app/api/assets/[...path]/route.ts +78 -0
  251. package/vendored/app/api/ev/route.ts +61 -0
  252. package/vendored/app/api/isr-health/route.ts +66 -0
  253. package/vendored/app/api/mcp/[project]/route.ts +435 -0
  254. package/vendored/app/api/og/route.tsx +167 -0
  255. package/vendored/app/api/r2/[project]/[...path]/route.ts +214 -0
  256. package/vendored/app/api/revalidate/route.ts +76 -0
  257. package/vendored/app/globals.css +37 -0
  258. package/vendored/app/layout.tsx +571 -0
  259. package/vendored/app/not-found.tsx +47 -0
  260. package/vendored/components/CodeBlockCopyButton.tsx +146 -0
  261. package/vendored/components/HeaderLinkCopy.tsx +135 -0
  262. package/vendored/components/errors/NotFoundContent.tsx +147 -0
  263. package/vendored/components/layout/LayoutWrapper.tsx +128 -0
  264. package/vendored/components/mdx/Accordion.tsx +91 -0
  265. package/vendored/components/mdx/ApiCodePanel.tsx +51 -0
  266. package/vendored/components/mdx/ApiEndpoint.tsx +104 -0
  267. package/vendored/components/mdx/ApiPage.tsx +379 -0
  268. package/vendored/components/mdx/Badge.tsx +169 -0
  269. package/vendored/components/mdx/Callouts.tsx +140 -0
  270. package/vendored/components/mdx/Card.tsx +214 -0
  271. package/vendored/components/mdx/CodeGroup.tsx +136 -0
  272. package/vendored/components/mdx/Color.tsx +244 -0
  273. package/vendored/components/mdx/Columns.tsx +37 -0
  274. package/vendored/components/mdx/Expandable.tsx +37 -0
  275. package/vendored/components/mdx/Frame.tsx +51 -0
  276. package/vendored/components/mdx/Icon.tsx +132 -0
  277. package/vendored/components/mdx/Latex.tsx +75 -0
  278. package/vendored/components/mdx/MDXComponents.tsx +414 -0
  279. package/vendored/components/mdx/Mermaid.tsx +35 -0
  280. package/vendored/components/mdx/MermaidInner.tsx +342 -0
  281. package/vendored/components/mdx/OpenApiEndpoint.tsx +971 -0
  282. package/vendored/components/mdx/Panel.tsx +26 -0
  283. package/vendored/components/mdx/PanelWrapper.tsx +100 -0
  284. package/vendored/components/mdx/ParamField.tsx +75 -0
  285. package/vendored/components/mdx/RequestExample.tsx +91 -0
  286. package/vendored/components/mdx/ResponseExample.tsx +145 -0
  287. package/vendored/components/mdx/ResponseField.tsx +109 -0
  288. package/vendored/components/mdx/Steps.tsx +173 -0
  289. package/vendored/components/mdx/Table.tsx +352 -0
  290. package/vendored/components/mdx/Tabs.tsx +147 -0
  291. package/vendored/components/mdx/Tile.tsx +127 -0
  292. package/vendored/components/mdx/Tooltip.tsx +111 -0
  293. package/vendored/components/mdx/Tree.tsx +484 -0
  294. package/vendored/components/mdx/Update.tsx +90 -0
  295. package/vendored/components/mdx/View.tsx +354 -0
  296. package/vendored/components/mdx/YouTube.tsx +35 -0
  297. package/vendored/components/mdx/ZoomableImage.tsx +83 -0
  298. package/vendored/components/navigation/Breadcrumb.tsx +241 -0
  299. package/vendored/components/navigation/DefaultLogo.tsx +81 -0
  300. package/vendored/components/navigation/Header.tsx +512 -0
  301. package/vendored/components/navigation/LanguageSelector.tsx +249 -0
  302. package/vendored/components/navigation/PageNavigation.tsx +174 -0
  303. package/vendored/components/navigation/Sidebar.tsx +713 -0
  304. package/vendored/components/navigation/SocialFooter.tsx +186 -0
  305. package/vendored/components/navigation/TableOfContents.tsx +435 -0
  306. package/vendored/components/navigation/TabsNav.tsx +182 -0
  307. package/vendored/components/search/LazySearchModal.tsx +19 -0
  308. package/vendored/components/search/SearchModal.tsx +573 -0
  309. package/vendored/components/snippets/ProjectSnippets.tsx +4 -0
  310. package/vendored/components/theme/ThemeProvider.tsx +31 -0
  311. package/vendored/components/theme/ThemeToggle.tsx +134 -0
  312. package/vendored/components/ui/CodePanel.tsx +517 -0
  313. package/vendored/components/ui/CodePanelModal.tsx +342 -0
  314. package/vendored/contexts/TabSyncContext.tsx +30 -0
  315. package/vendored/hooks/useFocusTrap.ts +42 -0
  316. package/vendored/hooks/useHashNavigation.ts +39 -0
  317. package/vendored/hooks/useShikiHighlight.ts +101 -0
  318. package/vendored/lib/analytics-client.ts +77 -0
  319. package/vendored/lib/build/cache.ts +138 -0
  320. package/vendored/lib/build/error-parser.ts +690 -0
  321. package/vendored/lib/build/estimation.ts +113 -0
  322. package/vendored/lib/build/index.ts +17 -0
  323. package/vendored/lib/build/page-file-map.ts +48 -0
  324. package/vendored/lib/build/r2-upload.ts +179 -0
  325. package/vendored/lib/cache-keys.ts +117 -0
  326. package/vendored/lib/code-utils.ts +42 -0
  327. package/vendored/lib/content-loader.ts +176 -0
  328. package/vendored/lib/deprecated-components.ts +185 -0
  329. package/vendored/lib/docs-isr.ts +180 -0
  330. package/vendored/lib/docs-types.ts +874 -0
  331. package/vendored/lib/docs.ts +203 -0
  332. package/vendored/lib/domain-helpers.ts +107 -0
  333. package/vendored/lib/email-notifier.ts +102 -0
  334. package/vendored/lib/email-templates/build-failure.tsx +193 -0
  335. package/vendored/lib/email-templates/components/base-layout.tsx +150 -0
  336. package/vendored/lib/email-templates/components/error-box.tsx +88 -0
  337. package/vendored/lib/email-templates/components/info-row.tsx +63 -0
  338. package/vendored/lib/email-templates/index.ts +13 -0
  339. package/vendored/lib/empty-polyfill.js +3 -0
  340. package/vendored/lib/extract-highlights.ts +124 -0
  341. package/vendored/lib/fonts.ts +227 -0
  342. package/vendored/lib/frontmatter-utils.ts +77 -0
  343. package/vendored/lib/fs-utils.ts +20 -0
  344. package/vendored/lib/git-utils.ts +87 -0
  345. package/vendored/lib/health-checks.ts +224 -0
  346. package/vendored/lib/icon-utils.ts +492 -0
  347. package/vendored/lib/infer-page-type.ts +14 -0
  348. package/vendored/lib/isr-build-executor.ts +185 -0
  349. package/vendored/lib/language-icons.ts +152 -0
  350. package/vendored/lib/language-utils.ts +338 -0
  351. package/vendored/lib/latex-config.ts +64 -0
  352. package/vendored/lib/link-prefix-context.tsx +32 -0
  353. package/vendored/lib/logger.ts +63 -0
  354. package/vendored/lib/mcp-search.ts +255 -0
  355. package/vendored/lib/mdx-inline-components.ts +155 -0
  356. package/vendored/lib/mdx.ts +100 -0
  357. package/vendored/lib/middleware-helpers.ts +519 -0
  358. package/vendored/lib/navigation-resolver.ts +621 -0
  359. package/vendored/lib/navigation-utils.ts +103 -0
  360. package/vendored/lib/normalize-config.ts +94 -0
  361. package/vendored/lib/openapi/cache.ts +92 -0
  362. package/vendored/lib/openapi/code-examples.ts +389 -0
  363. package/vendored/lib/openapi/errors.ts +253 -0
  364. package/vendored/lib/openapi/generator.ts +230 -0
  365. package/vendored/lib/openapi/index.ts +84 -0
  366. package/vendored/lib/openapi/parser.ts +474 -0
  367. package/vendored/lib/openapi/types.ts +232 -0
  368. package/vendored/lib/openapi/validator.ts +156 -0
  369. package/vendored/lib/openapi-isr.ts +121 -0
  370. package/vendored/lib/page-isr-helpers.ts +137 -0
  371. package/vendored/lib/path-safety.ts +130 -0
  372. package/vendored/lib/paths.ts +35 -0
  373. package/vendored/lib/preprocess-mdx.ts +951 -0
  374. package/vendored/lib/process-mdx-with-exports.ts +75 -0
  375. package/vendored/lib/project-resolver.ts +165 -0
  376. package/vendored/lib/r2-content.ts +60 -0
  377. package/vendored/lib/r2-manifest.ts +84 -0
  378. package/vendored/lib/recent-searches.ts +41 -0
  379. package/vendored/lib/recma-compound-components.ts +84 -0
  380. package/vendored/lib/redirect-compiler.ts +160 -0
  381. package/vendored/lib/redirect-matcher.ts +296 -0
  382. package/vendored/lib/redis.ts +23 -0
  383. package/vendored/lib/rehype-class-to-classname.ts +31 -0
  384. package/vendored/lib/rehype-code-meta.ts +275 -0
  385. package/vendored/lib/rehype-nozoom-to-data.ts +45 -0
  386. package/vendored/lib/remark-extract-exports.ts +104 -0
  387. package/vendored/lib/resilience.ts +260 -0
  388. package/vendored/lib/revalidation-helpers.ts +200 -0
  389. package/vendored/lib/revalidation-trigger.ts +150 -0
  390. package/vendored/lib/screenshot-capture.ts +229 -0
  391. package/vendored/lib/search-client.ts +91 -0
  392. package/vendored/lib/search-suggestions.ts +38 -0
  393. package/vendored/lib/search.ts +158 -0
  394. package/vendored/lib/seo.ts +264 -0
  395. package/vendored/lib/shiki-client.ts +131 -0
  396. package/vendored/lib/shiki-config.ts +289 -0
  397. package/vendored/lib/shiki-css-theme.ts +46 -0
  398. package/vendored/lib/shiki-highlighter.ts +62 -0
  399. package/vendored/lib/shiki-transformers.ts +337 -0
  400. package/vendored/lib/slack-notifier.ts +248 -0
  401. package/vendored/lib/snippet-compiler-isr.ts +114 -0
  402. package/vendored/lib/snippet-loader-isr.ts +276 -0
  403. package/vendored/lib/static-artifacts.ts +375 -0
  404. package/vendored/lib/static-file-route.ts +72 -0
  405. package/vendored/lib/tracking-script.ts +19 -0
  406. package/vendored/lib/typography-config.ts +42 -0
  407. package/vendored/lib/validate-config.ts +268 -0
  408. package/vendored/next.config.js +45 -0
  409. package/vendored/postcss.config.js +6 -0
  410. package/vendored/schema/README.md +28 -0
  411. package/vendored/schema/docs-schema.json +4631 -0
  412. package/vendored/scripts/build-project.cjs +174 -0
  413. package/vendored/scripts/build-search-index.cjs +347 -0
  414. package/vendored/scripts/compile-snippets.cjs +488 -0
  415. package/vendored/scripts/copy-files.cjs +295 -0
  416. package/vendored/scripts/dev-project.cjs +534 -0
  417. package/vendored/scripts/enhance-navigation.cjs +354 -0
  418. package/vendored/scripts/validate-links.cjs +423 -0
  419. package/vendored/shared/constants.ts +6 -0
  420. package/vendored/shared/index.ts +19 -0
  421. package/vendored/shared/logger.ts +62 -0
  422. package/vendored/shared/memory-monitor.ts +190 -0
  423. package/vendored/shared/navigation-validator.ts +101 -0
  424. package/vendored/shared/path-security.ts +39 -0
  425. package/vendored/shared/status-reporter.ts +199 -0
  426. package/vendored/shared/timer.ts +51 -0
  427. package/vendored/shared/types.ts +102 -0
  428. package/vendored/tailwind.config.ts +39 -0
  429. package/vendored/themes/base.css +1311 -0
  430. package/vendored/themes/index.ts +119 -0
  431. package/vendored/themes/jam/variables.css +835 -0
  432. package/vendored/themes/nebula/variables.css +282 -0
  433. package/vendored/themes/pulsar/variables.css +1009 -0
  434. package/vendored/themes/types.ts +89 -0
  435. package/vendored/tsconfig.json +48 -0
@@ -0,0 +1,473 @@
1
+ /**
2
+ * Extract inline components that use React hooks to snippet files.
3
+ *
4
+ * Inline MDX components are server-rendered and cannot use React hooks.
5
+ * This module detects hook usage and extracts those components to
6
+ * proper snippet files with 'use client' directive.
7
+ *
8
+ * Example transformation:
9
+ *
10
+ * Before (in page.mdx):
11
+ * export const Counter = () => {
12
+ * const [count, setCount] = useState(0);
13
+ * return <button onClick={() => setCount(c => c + 1)}>{count}</button>;
14
+ * };
15
+ *
16
+ * After:
17
+ * - Creates /snippets/counter.tsx with 'use client' and the component
18
+ * - Replaces export with: import { Counter } from '/snippets/counter';
19
+ */
20
+ import fs from 'fs-extra';
21
+ import path from 'path';
22
+ // React hooks that require client-side rendering
23
+ const REACT_HOOKS = [
24
+ 'useState',
25
+ 'useEffect',
26
+ 'useContext',
27
+ 'useReducer',
28
+ 'useCallback',
29
+ 'useMemo',
30
+ 'useRef',
31
+ 'useImperativeHandle',
32
+ 'useLayoutEffect',
33
+ 'useDebugValue',
34
+ 'useDeferredValue',
35
+ 'useTransition',
36
+ 'useId',
37
+ 'useSyncExternalStore',
38
+ 'useInsertionEffect',
39
+ ];
40
+ const HOOKS_PATTERN = new RegExp(`\\b(${REACT_HOOKS.join('|')})\\s*\\(`, 'g');
41
+ /**
42
+ * Find all fenced code block ranges in content.
43
+ * Returns array of [start, end] positions for each code block.
44
+ */
45
+ function findCodeBlockRanges(content) {
46
+ const ranges = [];
47
+ const fencePattern = /^```/gm;
48
+ let match;
49
+ let openFence = null;
50
+ while ((match = fencePattern.exec(content)) !== null) {
51
+ if (openFence === null) {
52
+ // Opening fence
53
+ openFence = match.index;
54
+ }
55
+ else {
56
+ // Closing fence - find end of line
57
+ let endPos = match.index + 3;
58
+ while (endPos < content.length && content[endPos] !== '\n') {
59
+ endPos++;
60
+ }
61
+ ranges.push([openFence, endPos]);
62
+ openFence = null;
63
+ }
64
+ }
65
+ return ranges;
66
+ }
67
+ /**
68
+ * Check if a position is inside any code block.
69
+ */
70
+ function isInsideCodeBlock(pos, codeBlockRanges) {
71
+ return codeBlockRanges.some(([start, end]) => pos >= start && pos <= end);
72
+ }
73
+ /**
74
+ * Extract all inline component exports from MDX content.
75
+ * Skips exports inside fenced code blocks.
76
+ */
77
+ function extractInlineExports(content) {
78
+ const results = [];
79
+ const codeBlockRanges = findCodeBlockRanges(content);
80
+ // Match export const declarations
81
+ const exportPattern = /export\s+const\s+(\w+)\s*=\s*/g;
82
+ let match;
83
+ const matches = [];
84
+ while ((match = exportPattern.exec(content)) !== null) {
85
+ // Skip exports inside code blocks
86
+ if (isInsideCodeBlock(match.index, codeBlockRanges)) {
87
+ continue;
88
+ }
89
+ // Only match PascalCase names (React components)
90
+ if (/^[A-Z][a-zA-Z0-9]*$/.test(match[1])) {
91
+ matches.push({
92
+ name: match[1],
93
+ start: match.index,
94
+ });
95
+ }
96
+ }
97
+ // Find the end of each export (next export or significant content)
98
+ for (let i = 0; i < matches.length; i++) {
99
+ const current = matches[i];
100
+ const nextStart = i + 1 < matches.length ? matches[i + 1].start : findExportEnd(content, current.start);
101
+ const source = content.slice(current.start, nextStart).trim().replace(/;?\s*$/, ';');
102
+ results.push({
103
+ name: current.name,
104
+ source,
105
+ start: current.start,
106
+ end: nextStart,
107
+ });
108
+ }
109
+ return results;
110
+ }
111
+ /**
112
+ * Count preceding backslashes to determine if a quote is escaped.
113
+ * An odd number of backslashes means the quote is escaped.
114
+ */
115
+ function isEscapedQuote(content, pos) {
116
+ let backslashCount = 0;
117
+ let j = pos - 1;
118
+ while (j >= 0 && content[j] === '\\') {
119
+ backslashCount++;
120
+ j--;
121
+ }
122
+ return backslashCount % 2 === 1;
123
+ }
124
+ /**
125
+ * Find where an export statement ends (before the next non-export content).
126
+ */
127
+ function findExportEnd(content, start) {
128
+ // Find the semicolon that ends the export, accounting for nested braces
129
+ let depth = 0;
130
+ let inString = null;
131
+ let templateExprDepth = 0; // Track depth inside template literal expressions ${...}
132
+ let i = start;
133
+ // Skip past "export const Name = "
134
+ const declMatch = content.slice(start).match(/^export\s+const\s+\w+\s*=\s*/);
135
+ if (declMatch) {
136
+ i += declMatch[0].length;
137
+ }
138
+ while (i < content.length) {
139
+ const char = content[i];
140
+ // Handle template literal expressions: ${...}
141
+ if (inString === '`') {
142
+ if (char === '$' && content[i + 1] === '{' && !isEscapedQuote(content, i)) {
143
+ templateExprDepth++;
144
+ i += 2;
145
+ continue;
146
+ }
147
+ if (templateExprDepth > 0 && char === '}') {
148
+ templateExprDepth--;
149
+ i++;
150
+ continue;
151
+ }
152
+ }
153
+ // Handle strings (only when not inside a template expression)
154
+ if ((char === '"' || char === "'" || char === '`') && !isEscapedQuote(content, i)) {
155
+ if (inString === char && (char !== '`' || templateExprDepth === 0)) {
156
+ inString = null;
157
+ }
158
+ else if (!inString) {
159
+ inString = char;
160
+ }
161
+ i++;
162
+ continue;
163
+ }
164
+ if (inString) {
165
+ i++;
166
+ continue;
167
+ }
168
+ // Track brace depth (only outside strings)
169
+ if (char === '(' || char === '{' || char === '[') {
170
+ depth++;
171
+ }
172
+ else if (char === ')' || char === '}' || char === ']') {
173
+ depth--;
174
+ }
175
+ // End at semicolon when depth is 0
176
+ if (char === ';' && depth === 0) {
177
+ return i + 1;
178
+ }
179
+ // End at depth 0 when we hit a newline followed by non-whitespace that's not a continuation
180
+ if (char === '\n' && depth === 0) {
181
+ const rest = content.slice(i + 1);
182
+ // Check if next line starts a new statement (not continuation)
183
+ if (/^\s*(?:export|import|const|let|var|function|class|\/\/|\/\*|<[A-Z]|#|---|\n)/.test(rest) ||
184
+ /^\s*\n\s*\n/.test(rest)) {
185
+ return i;
186
+ }
187
+ }
188
+ i++;
189
+ }
190
+ return content.length;
191
+ }
192
+ /**
193
+ * Strip comments from source code to avoid false positives in hook detection.
194
+ * Handles single-line (//) and multi-line (/* *​/) comments.
195
+ */
196
+ function stripComments(source) {
197
+ let result = '';
198
+ let i = 0;
199
+ let inString = null;
200
+ while (i < source.length) {
201
+ const char = source[i];
202
+ const nextChar = source[i + 1];
203
+ // Handle strings (don't strip inside strings)
204
+ if ((char === '"' || char === "'" || char === '`') && !isEscapedQuote(source, i)) {
205
+ if (inString === char) {
206
+ inString = null;
207
+ }
208
+ else if (!inString) {
209
+ inString = char;
210
+ }
211
+ result += char;
212
+ i++;
213
+ continue;
214
+ }
215
+ if (inString) {
216
+ result += char;
217
+ i++;
218
+ continue;
219
+ }
220
+ // Single-line comment
221
+ if (char === '/' && nextChar === '/') {
222
+ // Skip to end of line
223
+ while (i < source.length && source[i] !== '\n') {
224
+ i++;
225
+ }
226
+ continue;
227
+ }
228
+ // Multi-line comment
229
+ if (char === '/' && nextChar === '*') {
230
+ i += 2;
231
+ while (i < source.length - 1 && !(source[i] === '*' && source[i + 1] === '/')) {
232
+ i++;
233
+ }
234
+ i += 2; // Skip closing */
235
+ continue;
236
+ }
237
+ result += char;
238
+ i++;
239
+ }
240
+ return result;
241
+ }
242
+ /**
243
+ * Check if component source uses any React hooks.
244
+ * Strips comments first to avoid false positives.
245
+ */
246
+ function detectHooks(source) {
247
+ // Strip comments to avoid false positives like "// TODO: add useState"
248
+ const codeOnly = stripComments(source);
249
+ const hooks = [];
250
+ let match;
251
+ HOOKS_PATTERN.lastIndex = 0;
252
+ while ((match = HOOKS_PATTERN.exec(codeOnly)) !== null) {
253
+ if (!hooks.includes(match[1])) {
254
+ hooks.push(match[1]);
255
+ }
256
+ }
257
+ return hooks;
258
+ }
259
+ /**
260
+ * Convert component name to snippet filename (kebab-case).
261
+ */
262
+ function toSnippetFilename(name) {
263
+ return name
264
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
265
+ .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
266
+ .toLowerCase();
267
+ }
268
+ /**
269
+ * Generate a snippet file content from the extracted component.
270
+ */
271
+ function generateSnippetContent(name, source, hooks) {
272
+ // Extract the function body from "export const Name = <body>;"
273
+ const bodyMatch = source.match(/^export\s+const\s+\w+\s*=\s*([\s\S]+?);?\s*$/);
274
+ if (!bodyMatch) {
275
+ throw new Error(`Could not extract function body from: ${source.slice(0, 100)}...`);
276
+ }
277
+ const body = bodyMatch[1].trim();
278
+ // Build the snippet file
279
+ const lines = [
280
+ "'use client';",
281
+ '',
282
+ `import { ${hooks.join(', ')} } from 'react';`,
283
+ '',
284
+ `export const ${name} = ${body};`,
285
+ '',
286
+ ];
287
+ return lines.join('\n');
288
+ }
289
+ /**
290
+ * Extract components with hooks from MDX content to snippet files.
291
+ *
292
+ * @param content - MDX file content
293
+ * @param snippetsDir - Directory to write snippet files
294
+ * @returns Modified content with imports instead of inline exports
295
+ */
296
+ export function extractComponentsWithHooks(content, snippetsDir) {
297
+ const exports = extractInlineExports(content);
298
+ const extractedComponents = [];
299
+ // Find components that use hooks
300
+ for (const exp of exports) {
301
+ const hooks = detectHooks(exp.source);
302
+ if (hooks.length > 0) {
303
+ const snippetFilename = toSnippetFilename(exp.name);
304
+ extractedComponents.push({
305
+ name: exp.name,
306
+ source: exp.source,
307
+ hooks,
308
+ snippetPath: `/snippets/${snippetFilename}`,
309
+ });
310
+ }
311
+ }
312
+ if (extractedComponents.length === 0) {
313
+ return { content, extractedComponents: [], changed: false };
314
+ }
315
+ // Replace exports with imports (process in reverse order to preserve positions)
316
+ let modifiedContent = content;
317
+ const sortedExports = exports
318
+ .filter(exp => extractedComponents.some(ec => ec.name === exp.name))
319
+ .sort((a, b) => b.start - a.start); // Reverse order
320
+ for (const exp of sortedExports) {
321
+ const component = extractedComponents.find(ec => ec.name === exp.name);
322
+ const importStatement = `import { ${exp.name} } from '${component.snippetPath}';`;
323
+ // Replace the export with import
324
+ modifiedContent =
325
+ modifiedContent.slice(0, exp.start) +
326
+ importStatement +
327
+ modifiedContent.slice(exp.end);
328
+ }
329
+ // Clean up any double newlines created by replacement
330
+ modifiedContent = modifiedContent.replace(/\n{3,}/g, '\n\n');
331
+ return {
332
+ content: modifiedContent,
333
+ extractedComponents,
334
+ changed: true,
335
+ };
336
+ }
337
+ /**
338
+ * Check if a snippet with the given basename already exists (any extension).
339
+ * Returns the filename if found, null otherwise.
340
+ */
341
+ async function findExistingSnippet(snippetsDir, basename) {
342
+ const extensions = ['.tsx', '.jsx', '.mdx'];
343
+ for (const ext of extensions) {
344
+ const filepath = path.join(snippetsDir, basename + ext);
345
+ if (await fs.pathExists(filepath)) {
346
+ return basename + ext;
347
+ }
348
+ }
349
+ return null;
350
+ }
351
+ /**
352
+ * Check if a file contains React hooks that require 'use client'.
353
+ */
354
+ async function fileUsesHooks(filepath) {
355
+ const content = await fs.readFile(filepath, 'utf-8');
356
+ HOOKS_PATTERN.lastIndex = 0;
357
+ return HOOKS_PATTERN.test(content);
358
+ }
359
+ /**
360
+ * Common language subdirectory names used for translations.
361
+ */
362
+ const LANG_SUBDIRS = ['es', 'fr', 'zh', 'ja', 'ko', 'de', 'pt', 'it', 'ru', 'nl', 'pl', 'tr', 'ar', 'hi'];
363
+ /**
364
+ * Remove duplicate .mdx files in language subdirectories.
365
+ * These would cause duplicate component definitions in the build.
366
+ */
367
+ async function removeLangSubdirDuplicates(snippetsDir, basename) {
368
+ const removed = [];
369
+ for (const lang of LANG_SUBDIRS) {
370
+ const langDir = path.join(snippetsDir, lang);
371
+ if (await fs.pathExists(langDir)) {
372
+ const mdxPath = path.join(langDir, basename + '.mdx');
373
+ if (await fs.pathExists(mdxPath)) {
374
+ await fs.remove(mdxPath);
375
+ removed.push(`${lang}/${basename}.mdx`);
376
+ }
377
+ }
378
+ }
379
+ return removed;
380
+ }
381
+ export async function writeSnippetFiles(snippetsDir, components) {
382
+ await fs.ensureDir(snippetsDir);
383
+ const overwritten = [];
384
+ const converted = [];
385
+ const skipped = [];
386
+ for (const component of components) {
387
+ const basename = toSnippetFilename(component.name);
388
+ const filename = basename + '.tsx';
389
+ const filepath = path.join(snippetsDir, filename);
390
+ // Check if any snippet with the same basename already exists
391
+ const existing = await findExistingSnippet(snippetsDir, basename);
392
+ if (existing && existing !== filename) {
393
+ const existingPath = path.join(snippetsDir, existing);
394
+ // If existing file is .mdx and uses hooks, convert it to .tsx
395
+ if (existing.endsWith('.mdx') && await fileUsesHooks(existingPath)) {
396
+ // Remove the old .mdx file - we're converting it to proper .tsx
397
+ await fs.remove(existingPath);
398
+ converted.push(existing);
399
+ // Also remove duplicates in language subdirectories
400
+ const langDuplicates = await removeLangSubdirDuplicates(snippetsDir, basename);
401
+ converted.push(...langDuplicates);
402
+ }
403
+ else if (existing.endsWith('.jsx')) {
404
+ // .jsx files are already proper components, skip
405
+ skipped.push({ name: component.name, existingFile: existing });
406
+ continue;
407
+ }
408
+ else {
409
+ // Other cases (.mdx without hooks), skip
410
+ skipped.push({ name: component.name, existingFile: existing });
411
+ continue;
412
+ }
413
+ }
414
+ // Track if we're overwriting an existing .tsx file
415
+ if (existing === filename) {
416
+ overwritten.push(filename);
417
+ // Also remove duplicates in language subdirectories when overwriting
418
+ const langDuplicates = await removeLangSubdirDuplicates(snippetsDir, basename);
419
+ converted.push(...langDuplicates);
420
+ }
421
+ const content = generateSnippetContent(component.name, component.source, component.hooks);
422
+ await fs.writeFile(filepath, content, 'utf-8');
423
+ }
424
+ return { overwritten, converted, skipped };
425
+ }
426
+ /**
427
+ * Process all MDX files in a directory, extracting hook-using components to snippets.
428
+ */
429
+ export async function migrateHooksToSnippets(dir, mdxFiles) {
430
+ const snippetsDir = path.join(dir, 'snippets');
431
+ const results = [];
432
+ const allOverwritten = [];
433
+ const allConverted = [];
434
+ const allSkipped = [];
435
+ let filesModified = 0;
436
+ let componentsExtracted = 0;
437
+ for (const file of mdxFiles) {
438
+ const content = await fs.readFile(file, 'utf-8');
439
+ const result = extractComponentsWithHooks(content, snippetsDir);
440
+ if (result.changed) {
441
+ // Write snippet files first to know what was skipped/converted
442
+ const writeResult = await writeSnippetFiles(snippetsDir, result.extractedComponents);
443
+ allOverwritten.push(...writeResult.overwritten);
444
+ allConverted.push(...writeResult.converted);
445
+ allSkipped.push(...writeResult.skipped);
446
+ // Filter out skipped components from the MDX replacement
447
+ const skippedNames = new Set(writeResult.skipped.map(s => s.name));
448
+ const writtenComponents = result.extractedComponents.filter(c => !skippedNames.has(c.name));
449
+ if (writtenComponents.length > 0) {
450
+ // Re-extract with only written components to get correct MDX content
451
+ // Or just write the modified MDX as-is since it still has the imports
452
+ await fs.writeFile(file, result.content, 'utf-8');
453
+ filesModified++;
454
+ componentsExtracted += writtenComponents.length;
455
+ results.push({
456
+ file: path.relative(dir, file),
457
+ components: writtenComponents,
458
+ });
459
+ }
460
+ }
461
+ }
462
+ return {
463
+ filesProcessed: mdxFiles.length,
464
+ filesModified,
465
+ componentsExtracted,
466
+ overwrittenSnippets: [...new Set(allOverwritten)], // Deduplicate
467
+ convertedSnippets: [...new Set(allConverted)], // Deduplicate
468
+ skippedComponents: allSkipped.filter((s, i, arr) => arr.findIndex(x => x.name === s.name) === i // Deduplicate by name
469
+ ),
470
+ results,
471
+ };
472
+ }
473
+ //# sourceMappingURL=extract-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-hooks.js","sourceRoot":"","sources":["../../../src/commands/migrate/extract-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Migration command for converting documentation from other platforms to Jamdesk.
3
+ *
4
+ * Currently supports:
5
+ * - Mintlify (mint.json) → Jamdesk (docs.json)
6
+ *
7
+ * Usage: jamdesk migrate
8
+ *
9
+ * The command walks users through an interactive migration process:
10
+ * 1. Detects the source platform (Mintlify)
11
+ * 2. Shows backup warning and asks for confirmation
12
+ * 3. Asks for theme preference
13
+ * 4. Converts config in place (modifies files directly)
14
+ */
15
+ import type { MigrationOptions } from './types.js';
16
+ export declare function migrate(options: MigrationOptions): Promise<void>;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,KAAK,EAAE,gBAAgB,EAAa,MAAM,YAAY,CAAC;AAE9D,wBAAsB,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoStE"}