@cdmbase/wiki-browser 12.0.18-alpha.10

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 (367) hide show
  1. package/LICENSE +21 -0
  2. package/lib/components/Logo.d.ts +4 -0
  3. package/lib/components/Logo.d.ts.map +1 -0
  4. package/lib/components/Logo.js +16 -0
  5. package/lib/components/Logo.js.map +1 -0
  6. package/lib/components/help/SidebarSearch.d.ts +8 -0
  7. package/lib/components/help/SidebarSearch.d.ts.map +1 -0
  8. package/lib/components/help/SidebarSearch.js +111 -0
  9. package/lib/components/help/SidebarSearch.js.map +1 -0
  10. package/lib/components/help/index.d.ts +2 -0
  11. package/lib/components/help/index.d.ts.map +1 -0
  12. package/lib/components/landing/FeatureCard.d.ts +13 -0
  13. package/lib/components/landing/FeatureCard.d.ts.map +1 -0
  14. package/lib/components/landing/FeatureCard.js +85 -0
  15. package/lib/components/landing/FeatureCard.js.map +1 -0
  16. package/lib/components/landing/QuickLinkCard.d.ts +8 -0
  17. package/lib/components/landing/QuickLinkCard.d.ts.map +1 -0
  18. package/lib/components/landing/QuickLinkCard.js +26 -0
  19. package/lib/components/landing/QuickLinkCard.js.map +1 -0
  20. package/lib/components/landing/SearchInput.d.ts +10 -0
  21. package/lib/components/landing/SearchInput.d.ts.map +1 -0
  22. package/lib/components/landing/SearchInput.js +223 -0
  23. package/lib/components/landing/SearchInput.js.map +1 -0
  24. package/lib/components/landing/index.d.ts +4 -0
  25. package/lib/components/landing/index.d.ts.map +1 -0
  26. package/lib/components/welcome.d.ts +3 -0
  27. package/lib/components/welcome.d.ts.map +1 -0
  28. package/lib/compute.d.ts +4 -0
  29. package/lib/compute.d.ts.map +1 -0
  30. package/lib/compute.js +96 -0
  31. package/lib/compute.js.map +1 -0
  32. package/lib/config/env-config.d.ts +4 -0
  33. package/lib/config/env-config.d.ts.map +1 -0
  34. package/lib/config/env-config.js +7 -0
  35. package/lib/config/env-config.js.map +1 -0
  36. package/lib/docs.config.d.ts +48 -0
  37. package/lib/docs.config.d.ts.map +1 -0
  38. package/lib/index.d.ts +4 -0
  39. package/lib/index.d.ts.map +1 -0
  40. package/lib/index.js +2 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/loaders/search.d.ts +1 -0
  43. package/lib/loaders/search.d.ts.map +1 -0
  44. package/lib/module.d.ts +4 -0
  45. package/lib/module.d.ts.map +1 -0
  46. package/lib/module.js +11 -0
  47. package/lib/module.js.map +1 -0
  48. package/lib/pages/ArticlePage/ArticlePage.d.ts +4 -0
  49. package/lib/pages/ArticlePage/ArticlePage.d.ts.map +1 -0
  50. package/lib/pages/ArticlePage/ArticlePage.js +222 -0
  51. package/lib/pages/ArticlePage/ArticlePage.js.map +1 -0
  52. package/lib/pages/ArticlePage/index.d.ts +3 -0
  53. package/lib/pages/ArticlePage/index.d.ts.map +1 -0
  54. package/lib/pages/ArticlePage/index.js +3 -0
  55. package/lib/pages/ArticlePage/index.js.map +1 -0
  56. package/lib/pages/CategoryCollection/CategoryCollection.d.ts +4 -0
  57. package/lib/pages/CategoryCollection/CategoryCollection.d.ts.map +1 -0
  58. package/lib/pages/CategoryCollection/CategoryCollection.js +103 -0
  59. package/lib/pages/CategoryCollection/CategoryCollection.js.map +1 -0
  60. package/lib/pages/CategoryCollection/index.d.ts +3 -0
  61. package/lib/pages/CategoryCollection/index.d.ts.map +1 -0
  62. package/lib/pages/CategoryCollection/index.js +3 -0
  63. package/lib/pages/CategoryCollection/index.js.map +1 -0
  64. package/lib/pages/Help/HelpIndex.d.ts +4 -0
  65. package/lib/pages/Help/HelpIndex.d.ts.map +1 -0
  66. package/lib/pages/Help/HelpIndex.js +44 -0
  67. package/lib/pages/Help/HelpIndex.js.map +1 -0
  68. package/lib/pages/Help/index.d.ts +4 -0
  69. package/lib/pages/Help/index.d.ts.map +1 -0
  70. package/lib/pages/Help/index.js +226 -0
  71. package/lib/pages/Help/index.js.map +1 -0
  72. package/lib/pages/Landing/index.d.ts +3 -0
  73. package/lib/pages/Landing/index.d.ts.map +1 -0
  74. package/lib/pages/Landing/index.js +281 -0
  75. package/lib/pages/Landing/index.js.map +1 -0
  76. package/lib/routes.json +2533 -0
  77. package/lib/seo.d.ts +22 -0
  78. package/lib/seo.d.ts.map +1 -0
  79. package/lib/slot-fill/FooterFill.d.ts +3 -0
  80. package/lib/slot-fill/FooterFill.d.ts.map +1 -0
  81. package/lib/slot-fill/FooterFill.js +18 -0
  82. package/lib/slot-fill/FooterFill.js.map +1 -0
  83. package/lib/slot-fill/LogoFill.d.ts +5 -0
  84. package/lib/slot-fill/LogoFill.d.ts.map +1 -0
  85. package/lib/slot-fill/LogoFill.js +74 -0
  86. package/lib/slot-fill/LogoFill.js.map +1 -0
  87. package/lib/slot-fill/consts.d.ts +5 -0
  88. package/lib/slot-fill/consts.d.ts.map +1 -0
  89. package/lib/slot-fill/consts.js +1 -0
  90. package/lib/slot-fill/consts.js.map +1 -0
  91. package/lib/slot-fill/index.d.ts +4 -0
  92. package/lib/slot-fill/index.d.ts.map +1 -0
  93. package/lib/templates/assets/images/add-link-frontend.png +0 -0
  94. package/lib/templates/assets/images/add-package-backend.png +0 -0
  95. package/lib/templates/assets/images/add-to-backend-module.png +0 -0
  96. package/lib/templates/assets/images/add-upload-client-frontend.png +0 -0
  97. package/lib/templates/assets/images/additional-parameters.png +0 -0
  98. package/lib/templates/assets/images/aeh-implementation.png +0 -0
  99. package/lib/templates/assets/images/aeh-usage.png +0 -0
  100. package/lib/templates/assets/images/apollo-client/recommendation_cache_mgmt.png +0 -0
  101. package/lib/templates/assets/images/app-deploy-new-version/jenkins1.PNG +0 -0
  102. package/lib/templates/assets/images/app-deploy-new-version/jenkins2.PNG +0 -0
  103. package/lib/templates/assets/images/auth-wrapper-code.png +0 -0
  104. package/lib/templates/assets/images/cdebase.png +0 -0
  105. package/lib/templates/assets/images/cdm-locales-directory.png +0 -0
  106. package/lib/templates/assets/images/client-settings.png +0 -0
  107. package/lib/templates/assets/images/codegen_file_update.png +0 -0
  108. package/lib/templates/assets/images/configuration.png +0 -0
  109. package/lib/templates/assets/images/copy-plugin.png +0 -0
  110. package/lib/templates/assets/images/docusaurus.png +0 -0
  111. package/lib/templates/assets/images/error-link.png +0 -0
  112. package/lib/templates/assets/images/error-sample.png +0 -0
  113. package/lib/templates/assets/images/extension copy.png +0 -0
  114. package/lib/templates/assets/images/extension.png +0 -0
  115. package/lib/templates/assets/images/graphql/graphql-folder-backend.png +0 -0
  116. package/lib/templates/assets/images/graphql/graphql-folder-with-gql.png +0 -0
  117. package/lib/templates/assets/images/i18n-config.png +0 -0
  118. package/lib/templates/assets/images/image.png +0 -0
  119. package/lib/templates/assets/images/logo.svg +10 -0
  120. package/lib/templates/assets/images/logo1.svg +1 -0
  121. package/lib/templates/assets/images/modify-upload-false-server.png +0 -0
  122. package/lib/templates/assets/images/navigation-auth-enabled.png +0 -0
  123. package/lib/templates/assets/images/org-dashboard-navigation.png +0 -0
  124. package/lib/templates/assets/images/org-navigation.png +0 -0
  125. package/lib/templates/assets/images/preferences_graphql_type.png +0 -0
  126. package/lib/templates/assets/images/provider.png +0 -0
  127. package/lib/templates/assets/images/route-config.png +0 -0
  128. package/lib/templates/assets/images/service-accounts.png +0 -0
  129. package/lib/templates/assets/images/source-code/source-code-environments.png +0 -0
  130. package/lib/templates/assets/images/source-code/source-code-organization.png +0 -0
  131. package/lib/templates/assets/images/spin-clone-develop-deployment/jenkins-changes.png +0 -0
  132. package/lib/templates/assets/images/spin-clone-develop-deployment/lerna-changes.png +0 -0
  133. package/lib/templates/assets/images/spin-clone-develop-deployment/root-package-json-changes.png +0 -0
  134. package/lib/templates/assets/images/spin-clone-develop-deployment/values-dev-changes.png +0 -0
  135. package/lib/templates/assets/images/sso-mappers.png +0 -0
  136. package/lib/templates/assets/images/sso-picture-mapper.png +0 -0
  137. package/lib/templates/assets/images/sso-settings.png +0 -0
  138. package/lib/templates/assets/images/timesheet_apollo_cache.png +0 -0
  139. package/lib/templates/assets/images/timesheet_query.png +0 -0
  140. package/lib/templates/assets/images/tutorial/docsVersionDropdown.png +0 -0
  141. package/lib/templates/assets/images/tutorial/localeDropdown.png +0 -0
  142. package/lib/templates/assets/images/unauthenticated.png +0 -0
  143. package/lib/templates/assets/images/undraw_docusaurus_mountain.svg +170 -0
  144. package/lib/templates/assets/images/undraw_docusaurus_react.svg +169 -0
  145. package/lib/templates/assets/images/undraw_docusaurus_tree.svg +1 -0
  146. package/lib/templates/assets/images/vite-plugin-config.png +0 -0
  147. package/lib/templates/content/docs/Generators/Project/generate-fullproject.md +12 -0
  148. package/lib/templates/content/docs/LLM/Logger.llm.md +194 -0
  149. package/lib/templates/content/docs/LLM/backend-proxies-services-llm.md +2687 -0
  150. package/lib/templates/content/docs/LLM/backend-service-llm.md +3384 -0
  151. package/lib/templates/content/docs/LLM/db_migration_llm.md +954 -0
  152. package/lib/templates/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md +1245 -0
  153. package/lib/templates/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md +1241 -0
  154. package/lib/templates/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md +384 -0
  155. package/lib/templates/content/docs/LLM/llm_workflow_namespace.md +384 -0
  156. package/lib/templates/content/docs/LLM/organization-components-form-llm.md +1395 -0
  157. package/lib/templates/content/docs/LLM/page-component-llm.md +173 -0
  158. package/lib/templates/content/docs/LLM/preferences-settings-llm.md +2781 -0
  159. package/lib/templates/content/docs/LLM/tailwind-css-llm.md +502 -0
  160. package/lib/templates/content/docs/UI/SchemaBasedUI.md +334 -0
  161. package/lib/templates/content/docs/UI/SlotFillComponent.md +334 -0
  162. package/lib/templates/content/docs/adminide-modules/account/auth0-login.md +31 -0
  163. package/lib/templates/content/docs/adminide-modules/account/index.md +14 -0
  164. package/lib/templates/content/docs/adminide-modules/account/keycloak-remix-setup.md +86 -0
  165. package/lib/templates/content/docs/adminide-modules/account/remix-auth-setup.md +79 -0
  166. package/lib/templates/content/docs/adminide-modules/account/various-auth-qatest.md +157 -0
  167. package/lib/templates/content/docs/adminide-modules/api-builders/graphql.md +906 -0
  168. package/lib/templates/content/docs/adminide-modules/billing/payments/index.md +14 -0
  169. package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/index.md +14 -0
  170. package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md +25 -0
  171. package/lib/templates/content/docs/adminide-modules/billing/tier-config.md +293 -0
  172. package/lib/templates/content/docs/adminide-modules/connectors/Connector.md +207 -0
  173. package/lib/templates/content/docs/adminide-modules/file-upload/index.md +16 -0
  174. package/lib/templates/content/docs/adminide-modules/file-upload/setup.md +435 -0
  175. package/lib/templates/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md +161 -0
  176. package/lib/templates/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md +151 -0
  177. package/lib/templates/content/docs/adminide-modules/preferences/Configuration.md +241 -0
  178. package/lib/templates/content/docs/adminide-modules/preferences/Policy-Configuration.md +61 -0
  179. package/lib/templates/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md +319 -0
  180. package/lib/templates/content/docs/adminide-modules/preferences/contribute_scope_target.md +280 -0
  181. package/lib/templates/content/docs/adminide-modules/preferences/generate-urii.md +94 -0
  182. package/lib/templates/content/docs/adminide-modules/preferences/index.md +28 -0
  183. package/lib/templates/content/docs/adminide-modules/preferences/machine-configuration.md +157 -0
  184. package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md +1289 -0
  185. package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md +215 -0
  186. package/lib/templates/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md +72 -0
  187. package/lib/templates/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md +139 -0
  188. package/lib/templates/content/docs/adminide-modules/preferences/preference-dependency.md +138 -0
  189. package/lib/templates/content/docs/adminide-modules/preferences/route-based-configuration.md +41 -0
  190. package/lib/templates/content/docs/adminide-modules/preferences/schema-configuration.md +71 -0
  191. package/lib/templates/content/docs/adminide-modules/preferences/supported.md +24 -0
  192. package/lib/templates/content/docs/adminide-modules/preferences/useSettingsLoader.md +248 -0
  193. package/lib/templates/content/docs/adminide-modules/project-tools/auth-providers.md +1317 -0
  194. package/lib/templates/content/docs/adminide-modules/project-tools/keycloak-guide.md +543 -0
  195. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md +846 -0
  196. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md +708 -0
  197. package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenants.md +1117 -0
  198. package/lib/templates/content/docs/chrome-extension/index.md +14 -0
  199. package/lib/templates/content/docs/chrome-extension/setup.md +30 -0
  200. package/lib/templates/content/docs/contributing/adding-package.md +23 -0
  201. package/lib/templates/content/docs/contributing/adding_new_modules.md +99 -0
  202. package/lib/templates/content/docs/contributing/architecture-updates.md +19 -0
  203. package/lib/templates/content/docs/contributing/avoid-using-promises-ui.md +116 -0
  204. package/lib/templates/content/docs/contributing/coding-guidelines.md +111 -0
  205. package/lib/templates/content/docs/contributing/do-and-dont.md +42 -0
  206. package/lib/templates/content/docs/contributing/faq.md +22 -0
  207. package/lib/templates/content/docs/contributing/folder-setup/browser.md +12 -0
  208. package/lib/templates/content/docs/contributing/folder-setup/config.md +12 -0
  209. package/lib/templates/content/docs/contributing/folder-setup/containers-server.md +12 -0
  210. package/lib/templates/content/docs/contributing/folder-setup/core.md +12 -0
  211. package/lib/templates/content/docs/contributing/folder-setup/graphql.md +12 -0
  212. package/lib/templates/content/docs/contributing/folder-setup/index.md +30 -0
  213. package/lib/templates/content/docs/contributing/folder-setup/module.md +12 -0
  214. package/lib/templates/content/docs/contributing/folder-setup/server.md +12 -0
  215. package/lib/templates/content/docs/contributing/folder-setup/services.md +12 -0
  216. package/lib/templates/content/docs/contributing/folder-setup/store.md +12 -0
  217. package/lib/templates/content/docs/contributing/frontend-coding.md +30 -0
  218. package/lib/templates/content/docs/contributing/git-subtree-sharing.md +73 -0
  219. package/lib/templates/content/docs/contributing/graphql-subscriptions.md +69 -0
  220. package/lib/templates/content/docs/contributing/how-to-contribute.md +30 -0
  221. package/lib/templates/content/docs/contributing/how_to_check_pure_esm.md +29 -0
  222. package/lib/templates/content/docs/contributing/index.md +60 -0
  223. package/lib/templates/content/docs/contributing/installation-issues.md +23 -0
  224. package/lib/templates/content/docs/contributing/keyboard-shortcut.md +131 -0
  225. package/lib/templates/content/docs/contributing/language/locale-support.md +12 -0
  226. package/lib/templates/content/docs/contributing/lerna-build-tools.md +516 -0
  227. package/lib/templates/content/docs/contributing/lerna-yarn-workspaces.md +95 -0
  228. package/lib/templates/content/docs/contributing/lint-and-formatter.md +20 -0
  229. package/lib/templates/content/docs/contributing/mobile-setup.md +16 -0
  230. package/lib/templates/content/docs/contributing/project-setup.md +233 -0
  231. package/lib/templates/content/docs/contributing/react/index.md +14 -0
  232. package/lib/templates/content/docs/contributing/react/lazy-component.md +70 -0
  233. package/lib/templates/content/docs/contributing/run-various-options.md +124 -0
  234. package/lib/templates/content/docs/contributing/schema-first-graphql-types.md +37 -0
  235. package/lib/templates/content/docs/contributing/source-code-organization.md +57 -0
  236. package/lib/templates/content/docs/contributing/staging-docker.md +88 -0
  237. package/lib/templates/content/docs/contributing/third-party/apollo-client-v3-tutorials.md +28 -0
  238. package/lib/templates/content/docs/contributing/third-party/index.md +18 -0
  239. package/lib/templates/content/docs/contributing/typescript-contribution.md +16 -0
  240. package/lib/templates/content/docs/devops/app-deploy-new-version.md +30 -0
  241. package/lib/templates/content/docs/devops/index.md +14 -0
  242. package/lib/templates/content/docs/devops/mobile-jenkins-build.md +40 -0
  243. package/lib/templates/content/docs/devops/versioning-the-project.md +128 -0
  244. package/lib/templates/content/docs/error-handler/application-error-handler.md +40 -0
  245. package/lib/templates/content/docs/error-handler/error-handling.md +26 -0
  246. package/lib/templates/content/docs/error-handler/index.md +16 -0
  247. package/lib/templates/content/docs/error-handler/logging-errors.md +14 -0
  248. package/lib/templates/content/docs/feature-api/copy-operation.md +427 -0
  249. package/lib/templates/content/docs/feature-api/feature-browser/assets.md +46 -0
  250. package/lib/templates/content/docs/feature-api/feature-browser/auth-permissions.md +12 -0
  251. package/lib/templates/content/docs/feature-api/feature-browser/feature.md +131 -0
  252. package/lib/templates/content/docs/feature-api/feature-browser/index.md +22 -0
  253. package/lib/templates/content/docs/feature-api/feature-browser/routes-menu.md +110 -0
  254. package/lib/templates/content/docs/feature-api/feature-browser/routing-convention.md +124 -0
  255. package/lib/templates/content/docs/feature-api/feature-browser/routing.md +338 -0
  256. package/lib/templates/content/docs/feature-api/feature-mobile/auth-permissions.md +20 -0
  257. package/lib/templates/content/docs/feature-api/feature-mobile/feature.md +130 -0
  258. package/lib/templates/content/docs/feature-api/feature-mobile/index.md +18 -0
  259. package/lib/templates/content/docs/feature-api/feature-mobile/navigation.md +187 -0
  260. package/lib/templates/content/docs/feature-api/feature-server/Scheduling.md +44 -0
  261. package/lib/templates/content/docs/feature-api/feature-server/dataloader.md +320 -0
  262. package/lib/templates/content/docs/feature-api/feature-server/dependency-injection.md +81 -0
  263. package/lib/templates/content/docs/feature-api/feature-server/feature.md +65 -0
  264. package/lib/templates/content/docs/feature-api/feature-server/generic-dataloader.md +135 -0
  265. package/lib/templates/content/docs/feature-api/feature-server/index.md +40 -0
  266. package/lib/templates/content/docs/feature-api/feature-server/migration.md +127 -0
  267. package/lib/templates/content/docs/feature-api/feature-server/mongo-model.md +72 -0
  268. package/lib/templates/content/docs/feature-api/feature-server/permissions.md +12 -0
  269. package/lib/templates/content/docs/feature-api/feature-server/policies.md +57 -0
  270. package/lib/templates/content/docs/feature-api/feature-server/preferences.md +57 -0
  271. package/lib/templates/content/docs/feature-api/feature-server/repositories.md +114 -0
  272. package/lib/templates/content/docs/feature-api/feature-server/resolvers.md +126 -0
  273. package/lib/templates/content/docs/feature-api/feature-server/rules.md +132 -0
  274. package/lib/templates/content/docs/feature-api/feature-server/schema.md +12 -0
  275. package/lib/templates/content/docs/feature-api/feature-server/services.md +102 -0
  276. package/lib/templates/content/docs/feature-api/feature-server/setup-resource-crud.md +359 -0
  277. package/lib/templates/content/docs/feature-api/index.md +18 -0
  278. package/lib/templates/content/docs/graphql/apolloClient-mutation.md +94 -0
  279. package/lib/templates/content/docs/graphql/index.md +14 -0
  280. package/lib/templates/content/docs/graphql/scalars.md +15 -0
  281. package/lib/templates/content/docs/help/index.md +14 -0
  282. package/lib/templates/content/docs/help/intro.md +16 -0
  283. package/lib/templates/content/docs/intl/ant-design-menu-translation.md +74 -0
  284. package/lib/templates/content/docs/intl/intl-namespace.md +129 -0
  285. package/lib/templates/content/docs/intl/vite-plugin-intl.md +87 -0
  286. package/lib/templates/content/docs/intl/webpack-plugin-intl.md +12 -0
  287. package/lib/templates/content/docs/intro.md +18 -0
  288. package/lib/templates/content/docs/knowledge/basic-fullstack.md +238 -0
  289. package/lib/templates/content/docs/mailing/index.md +14 -0
  290. package/lib/templates/content/docs/mailing/mailing-template.md +148 -0
  291. package/lib/templates/content/docs/mobile/App-navigation-generator.md +410 -0
  292. package/lib/templates/content/docs/mobile/MobileTestCases.md +264 -0
  293. package/lib/templates/content/docs/mobile/eas-profile-build.md +107 -0
  294. package/lib/templates/content/docs/mobile/expo-push-notification-setup.md +216 -0
  295. package/lib/templates/content/docs/mobile/index.md +14 -0
  296. package/lib/templates/content/docs/mobile/routes.md +83 -0
  297. package/lib/templates/content/docs/organization/adding-account-context.md +116 -0
  298. package/lib/templates/content/docs/organization/adding-org-mobile-navigation.md +22 -0
  299. package/lib/templates/content/docs/organization/adding-org-web-navigation.md +12 -0
  300. package/lib/templates/content/docs/organization/index.md +20 -0
  301. package/lib/templates/content/docs/organization/initialization.md +20 -0
  302. package/lib/templates/content/docs/organization/organization-resource-vs-resource.md +112 -0
  303. package/lib/templates/content/docs/remix/configuration/component-structure-best-practices.md +152 -0
  304. package/lib/templates/content/docs/remix/configuration/configurations.md +218 -0
  305. package/lib/templates/content/docs/remix/configuration/css-import-and-stylesheets.md +142 -0
  306. package/lib/templates/content/docs/remix/configuration/dont-subcomponent-network.md +166 -0
  307. package/lib/templates/content/docs/remix/configuration/generated-data-loaders.md +122 -0
  308. package/lib/templates/content/docs/remix/configuration/generated-resource-loaders.md +257 -0
  309. package/lib/templates/content/docs/remix/configuration/query-params-generator.md +216 -0
  310. package/lib/templates/content/docs/remix/configuration/routes-extra-icons.md +103 -0
  311. package/lib/templates/content/docs/remix/configuration/routes-json-advanced.md +86 -0
  312. package/lib/templates/content/docs/remix/configuration/routes-json-auth.md +113 -0
  313. package/lib/templates/content/docs/remix/configuration/routes-json-best-practices.md +55 -0
  314. package/lib/templates/content/docs/remix/configuration/routes-json-fields.md +79 -0
  315. package/lib/templates/content/docs/remix/configuration/routes-json-graphql.md +79 -0
  316. package/lib/templates/content/docs/remix/configuration/routes-json-index.md +112 -0
  317. package/lib/templates/content/docs/remix/configuration/routes-json-loaders.md +165 -0
  318. package/lib/templates/content/docs/remix/configuration/routes-json-middleware.md +196 -0
  319. package/lib/templates/content/docs/remix/configuration/routes-json-overview.md +53 -0
  320. package/lib/templates/content/docs/remix/data-loaders.md +43 -0
  321. package/lib/templates/content/docs/remix/devtools/remix-devtools.md +58 -0
  322. package/lib/templates/content/docs/remix/examples/changes-using-servercode.md +79 -0
  323. package/lib/templates/content/docs/remix/extra-icons.md +62 -0
  324. package/lib/templates/content/docs/remix/extra-links.md +65 -0
  325. package/lib/templates/content/docs/remix/generated-data-loaders.md +114 -0
  326. package/lib/templates/content/docs/remix/queryParamsGenerator.md +89 -0
  327. package/lib/templates/content/docs/remix/resources.md +16 -0
  328. package/lib/templates/content/docs/remix/styles.md +132 -0
  329. package/lib/templates/content/docs/remix/wiki.md +12 -0
  330. package/lib/templates/content/docs/security/auth-wrapper/auth-wrapper.md +24 -0
  331. package/lib/templates/content/docs/security/index.md +18 -0
  332. package/lib/templates/content/docs/security/secure-button-mobilenative.md +88 -0
  333. package/lib/templates/content/docs/security/secure-button-web.md +89 -0
  334. package/lib/templates/content/docs/server-side/account-customization.md +82 -0
  335. package/lib/templates/content/docs/server-side/apollo/caching.md +164 -0
  336. package/lib/templates/content/docs/server-side/backend-architecture/FINAL-DECISION.md +209 -0
  337. package/lib/templates/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md +603 -0
  338. package/lib/templates/content/docs/server-side/backend-architecture/index1.md +0 -0
  339. package/lib/templates/content/docs/server-side/backend-coding.md +839 -0
  340. package/lib/templates/content/docs/server-side/e2b/manageing-template.md +197 -0
  341. package/lib/templates/content/docs/server-side/index.md +14 -0
  342. package/lib/templates/content/docs/server-side/inngest-functions-module.md +309 -0
  343. package/lib/templates/content/docs/server-side/listen-stripe-events.md +43 -0
  344. package/lib/templates/content/docs/server-side/slug-service.md +323 -0
  345. package/lib/templates/content/docs/tests/index.md +18 -0
  346. package/lib/templates/content/docs/tests/jest-test-debug-vscode.md +40 -0
  347. package/lib/templates/content/docs/tests/known-errors.md +116 -0
  348. package/lib/templates/content/docs/tests/service-test-template.md +118 -0
  349. package/lib/templates/content/docs/tests/test-setup.md +93 -0
  350. package/lib/templates/content/docs/xstate.md +23 -0
  351. package/lib/types.d.ts +37 -0
  352. package/lib/types.d.ts.map +1 -0
  353. package/lib/utils/docsNavigation.d.ts +9 -0
  354. package/lib/utils/docsNavigation.d.ts.map +1 -0
  355. package/lib/utils/docsNavigation.js +37 -0
  356. package/lib/utils/docsNavigation.js.map +1 -0
  357. package/lib/utils/helpCenterUtils.d.ts +26 -0
  358. package/lib/utils/helpCenterUtils.d.ts.map +1 -0
  359. package/lib/utils/index.d.ts +3 -0
  360. package/lib/utils/index.d.ts.map +1 -0
  361. package/lib/utils/index.js +3 -0
  362. package/lib/utils/index.js.map +1 -0
  363. package/lib/utils/markdownLoader.d.ts +36 -0
  364. package/lib/utils/markdownLoader.d.ts.map +1 -0
  365. package/lib/utils/markdownLoader.js +2242 -0
  366. package/lib/utils/markdownLoader.js.map +1 -0
  367. package/package.json +71 -0
@@ -0,0 +1,2242 @@
1
+ import {marked}from'marked';// Configure marked options
2
+ marked.setOptions({
3
+ breaks: true,
4
+ gfm: true
5
+ });
6
+ // Custom renderer to add IDs to headings
7
+ const renderer = new marked.Renderer();
8
+ const normalizeStaticAssetHref = href => {
9
+ // Convert markdown-relative references like "../static/img/x.png" into absolute "/static/img/x.png"
10
+ // so they resolve correctly when the article is served under routes like "/help-center/...".
11
+ if (!href) return href;
12
+ if (href.startsWith('/')) return href;
13
+ // Remove leading ./ and ../ segments
14
+ const cleaned = href.replace(/^(\.\/)+/, '').replace(/^(\.\.\/)+/, '');
15
+ if (cleaned.startsWith('static/')) return `/${cleaned}`;
16
+ if (cleaned.startsWith('content/')) return `/${cleaned}`;
17
+ return href;
18
+ };
19
+ renderer.heading = function (text, level) {
20
+ const id = text.toLowerCase().replace(/[^\w\s-]/g, '') // Remove special characters
21
+ .replace(/\s+/g, '-') // Replace spaces with hyphens
22
+ .replace(/-+/g, '-') // Replace multiple hyphens with single hyphen
23
+ .trim();
24
+ return `<h${level} id="${id}">${text}</h${level}>`;
25
+ };
26
+ renderer.image = function (href, title, text) {
27
+ const src = href ? normalizeStaticAssetHref(href) : '';
28
+ const safeAlt = (text || '').replaceAll('"', '&quot;');
29
+ const titleAttr = title ? ` title="${title.replaceAll('"', '&quot;')}"` : '';
30
+ return `<img src="${src}" alt="${safeAlt}"${titleAttr} />`;
31
+ };
32
+ marked.setOptions({
33
+ renderer: renderer
34
+ });
35
+ // Function to extract headings from markdown content
36
+ const extractHeadings = markdownContent => {
37
+ const headingRegex = /^(#{1,6})\s+(.+)$/gm;
38
+ const headings = [];
39
+ let match;
40
+ while ((match = headingRegex.exec(markdownContent)) !== null) {
41
+ const level = match[1].length; // Number of # characters
42
+ const text = match[2].trim();
43
+ const id = text.toLowerCase().replace(/[^\w\s-]/g, '') // Remove special characters
44
+ .replace(/\s+/g, '-') // Replace spaces with hyphens
45
+ .replace(/-+/g, '-') // Replace multiple hyphens with single hyphen
46
+ .trim();
47
+ headings.push({
48
+ id,
49
+ text,
50
+ level
51
+ });
52
+ }
53
+ return headings;
54
+ };
55
+ // Function to load markdown content dynamically
56
+ const loadMarkdownContent = async contentId => {
57
+ try {
58
+ // Map content IDs to file paths based on actual content structure
59
+ const contentPathMap = {
60
+ 'adminide-modules-account-auth0-login': '/content/docs/adminide-modules/account/auth0-login.md',
61
+ 'adminide-modules-account-index': '/content/docs/adminide-modules/account/index.md',
62
+ 'adminide-modules-account-keycloak-remix-setup': '/content/docs/adminide-modules/account/keycloak-remix-setup.md',
63
+ 'adminide-modules-account-remix-auth-setup': '/content/docs/adminide-modules/account/remix-auth-setup.md',
64
+ 'adminide-modules-account-various-auth-qatest': '/content/docs/adminide-modules/account/various-auth-qatest.md',
65
+ 'adminide-modules-api-builders-graphql': '/content/docs/adminide-modules/api-builders/graphql.md',
66
+ 'adminide-modules-billing-payments-index': '/content/docs/adminide-modules/billing/payments/index.md',
67
+ 'adminide-modules-billing-payments-stripe-index': '/content/docs/adminide-modules/billing/payments/stripe/index.md',
68
+ 'adminide-modules-billing-payments-stripe-settingup-stripe-locally': '/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md',
69
+ 'adminide-modules-billing-tier-config': '/content/docs/adminide-modules/billing/tier-config.md',
70
+ 'adminide-modules-connectors-connector': '/content/docs/adminide-modules/connectors/Connector.md',
71
+ 'adminide-modules-file-upload-index': '/content/docs/adminide-modules/file-upload/index.md',
72
+ 'adminide-modules-file-upload-setup': '/content/docs/adminide-modules/file-upload/setup.md',
73
+ 'adminide-modules-file-upload-upload-file-using-signed-url': '/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md',
74
+ 'adminide-modules-preferences-addadditionalpermissions': '/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md',
75
+ 'adminide-modules-preferences-configuration': '/content/docs/adminide-modules/preferences/Configuration.md',
76
+ 'adminide-modules-preferences-contribute_scope_target': '/content/docs/adminide-modules/preferences/contribute_scope_target.md',
77
+ 'adminide-modules-preferences-generate-urii': '/content/docs/adminide-modules/preferences/generate-urii.md',
78
+ 'adminide-modules-preferences-index': '/content/docs/adminide-modules/preferences/index.md',
79
+ 'adminide-modules-preferences-machine-configuration': '/content/docs/adminide-modules/preferences/machine-configuration.md',
80
+ 'adminide-modules-preferences-pagesettings-generatecdecodeuri': '/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md',
81
+ 'adminide-modules-preferences-pagesettings-migratingfromusesettings': '/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md',
82
+ 'adminide-modules-preferences-permissions-roles-permissions': '/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md',
83
+ 'adminide-modules-preferences-permissions-settinguserpermissions': '/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md',
84
+ 'adminide-modules-preferences-policy-configuration': '/content/docs/adminide-modules/preferences/Policy-Configuration.md',
85
+ 'adminide-modules-preferences-preference-dependency': '/content/docs/adminide-modules/preferences/preference-dependency.md',
86
+ 'adminide-modules-preferences-route-based-configuration': '/content/docs/adminide-modules/preferences/route-based-configuration.md',
87
+ 'adminide-modules-preferences-schema-configuration': '/content/docs/adminide-modules/preferences/schema-configuration.md',
88
+ 'adminide-modules-preferences-supported': '/content/docs/adminide-modules/preferences/supported.md',
89
+ 'adminide-modules-preferences-ui-components-resourcesettingsloader': '/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md',
90
+ 'adminide-modules-preferences-usesettingsloader': '/content/docs/adminide-modules/preferences/useSettingsLoader.md',
91
+ 'adminide-modules-project-tools-auth-providers': '/content/docs/adminide-modules/project-tools/auth-providers.md',
92
+ 'adminide-modules-project-tools-keycloak-guide': '/content/docs/adminide-modules/project-tools/keycloak-guide.md',
93
+ 'adminide-modules-project-tools-tenant-management-tenant-based-authentication': '/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md',
94
+ 'adminide-modules-project-tools-tenant-management-tenant-management': '/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md',
95
+ 'adminide-modules-project-tools-tenant-management-tenants': '/content/docs/adminide-modules/project-tools/tenant-management/tenants.md',
96
+ 'chrome-extension-index': '/content/docs/chrome-extension/index.md',
97
+ 'chrome-extension-setup': '/content/docs/chrome-extension/setup.md',
98
+ 'contributing-adding-package': '/content/docs/contributing/adding-package.md',
99
+ 'contributing-adding_new_modules': '/content/docs/contributing/adding_new_modules.md',
100
+ 'contributing-architecture-updates': '/content/docs/contributing/architecture-updates.md',
101
+ 'contributing-avoid-using-promises-ui': '/content/docs/contributing/avoid-using-promises-ui.md',
102
+ 'contributing-coding-guidelines': '/content/docs/contributing/coding-guidelines.md',
103
+ 'contributing-do-and-dont': '/content/docs/contributing/do-and-dont.md',
104
+ 'contributing-faq': '/content/docs/contributing/faq.md',
105
+ 'contributing-folder-setup-browser': '/content/docs/contributing/folder-setup/browser.md',
106
+ 'contributing-folder-setup-config': '/content/docs/contributing/folder-setup/config.md',
107
+ 'contributing-folder-setup-containers-server': '/content/docs/contributing/folder-setup/containers-server.md',
108
+ 'contributing-folder-setup-core': '/content/docs/contributing/folder-setup/core.md',
109
+ 'contributing-folder-setup-graphql': '/content/docs/contributing/folder-setup/graphql.md',
110
+ 'contributing-folder-setup-index': '/content/docs/contributing/folder-setup/index.md',
111
+ 'contributing-folder-setup-module': '/content/docs/contributing/folder-setup/module.md',
112
+ 'contributing-folder-setup-server': '/content/docs/contributing/folder-setup/server.md',
113
+ 'contributing-folder-setup-services': '/content/docs/contributing/folder-setup/services.md',
114
+ 'contributing-folder-setup-store': '/content/docs/contributing/folder-setup/store.md',
115
+ 'contributing-frontend-coding': '/content/docs/contributing/frontend-coding.md',
116
+ 'contributing-git-subtree-sharing': '/content/docs/contributing/git-subtree-sharing.md',
117
+ 'contributing-graphql-subscriptions': '/content/docs/contributing/graphql-subscriptions.md',
118
+ 'contributing-how-to-contribute': '/content/docs/contributing/how-to-contribute.md',
119
+ 'contributing-how_to_check_pure_esm': '/content/docs/contributing/how_to_check_pure_esm.md',
120
+ 'contributing-index': '/content/docs/contributing/index.md',
121
+ 'contributing-installation-issues': '/content/docs/contributing/installation-issues.md',
122
+ 'contributing-keyboard-shortcut': '/content/docs/contributing/keyboard-shortcut.md',
123
+ 'contributing-language-locale-support': '/content/docs/contributing/language/locale-support.md',
124
+ 'contributing-lerna-build-tools': '/content/docs/contributing/lerna-build-tools.md',
125
+ 'contributing-lerna-yarn-workspaces': '/content/docs/contributing/lerna-yarn-workspaces.md',
126
+ 'contributing-lint-and-formatter': '/content/docs/contributing/lint-and-formatter.md',
127
+ 'contributing-mobile-setup': '/content/docs/contributing/mobile-setup.md',
128
+ 'contributing-project-setup': '/content/docs/contributing/project-setup.md',
129
+ 'contributing-react-index': '/content/docs/contributing/react/index.md',
130
+ 'contributing-react-lazy-component': '/content/docs/contributing/react/lazy-component.md',
131
+ 'contributing-run-various-options': '/content/docs/contributing/run-various-options.md',
132
+ 'contributing-schema-first-graphql-types': '/content/docs/contributing/schema-first-graphql-types.md',
133
+ 'contributing-source-code-organization': '/content/docs/contributing/source-code-organization.md',
134
+ 'contributing-staging-docker': '/content/docs/contributing/staging-docker.md',
135
+ 'contributing-third-party-apollo-client-v3-tutorials': '/content/docs/contributing/third-party/apollo-client-v3-tutorials.md',
136
+ 'contributing-third-party-index': '/content/docs/contributing/third-party/index.md',
137
+ 'contributing-typescript-contribution': '/content/docs/contributing/typescript-contribution.md',
138
+ 'devops-app-deploy-new-version': '/content/docs/devops/app-deploy-new-version.md',
139
+ 'devops-index': '/content/docs/devops/index.md',
140
+ 'devops-mobile-jenkins-build': '/content/docs/devops/mobile-jenkins-build.md',
141
+ 'devops-versioning-the-project': '/content/docs/devops/versioning-the-project.md',
142
+ 'error-handler-application-error-handler': '/content/docs/error-handler/application-error-handler.md',
143
+ 'error-handler-error-handling': '/content/docs/error-handler/error-handling.md',
144
+ 'error-handler-index': '/content/docs/error-handler/index.md',
145
+ 'error-handler-logging-errors': '/content/docs/error-handler/logging-errors.md',
146
+ 'feature-api-copy-operation': '/content/docs/feature-api/copy-operation.md',
147
+ 'feature-api-feature-browser-assets': '/content/docs/feature-api/feature-browser/assets.md',
148
+ 'feature-api-feature-browser-auth-permissions': '/content/docs/feature-api/feature-browser/auth-permissions.md',
149
+ 'feature-api-feature-browser-feature': '/content/docs/feature-api/feature-browser/feature.md',
150
+ 'feature-api-feature-browser-index': '/content/docs/feature-api/feature-browser/index.md',
151
+ 'feature-api-feature-browser-routes-menu': '/content/docs/feature-api/feature-browser/routes-menu.md',
152
+ 'feature-api-feature-browser-routing': '/content/docs/feature-api/feature-browser/routing.md',
153
+ 'feature-api-feature-browser-routing-convention': '/content/docs/feature-api/feature-browser/routing-convention.md',
154
+ 'feature-api-feature-mobile-auth-permissions': '/content/docs/feature-api/feature-mobile/auth-permissions.md',
155
+ 'feature-api-feature-mobile-feature': '/content/docs/feature-api/feature-mobile/feature.md',
156
+ 'feature-api-feature-mobile-index': '/content/docs/feature-api/feature-mobile/index.md',
157
+ 'feature-api-feature-mobile-navigation': '/content/docs/feature-api/feature-mobile/navigation.md',
158
+ 'feature-api-feature-server-dataloader': '/content/docs/feature-api/feature-server/dataloader.md',
159
+ 'feature-api-feature-server-dependency-injection': '/content/docs/feature-api/feature-server/dependency-injection.md',
160
+ 'feature-api-feature-server-feature': '/content/docs/feature-api/feature-server/feature.md',
161
+ 'feature-api-feature-server-generic-dataloader': '/content/docs/feature-api/feature-server/generic-dataloader.md',
162
+ 'feature-api-feature-server-index': '/content/docs/feature-api/feature-server/index.md',
163
+ 'feature-api-feature-server-migration': '/content/docs/feature-api/feature-server/migration.md',
164
+ 'feature-api-feature-server-mongo-model': '/content/docs/feature-api/feature-server/mongo-model.md',
165
+ 'feature-api-feature-server-permissions': '/content/docs/feature-api/feature-server/permissions.md',
166
+ 'feature-api-feature-server-policies': '/content/docs/feature-api/feature-server/policies.md',
167
+ 'feature-api-feature-server-preferences': '/content/docs/feature-api/feature-server/preferences.md',
168
+ 'feature-api-feature-server-repositories': '/content/docs/feature-api/feature-server/repositories.md',
169
+ 'feature-api-feature-server-resolvers': '/content/docs/feature-api/feature-server/resolvers.md',
170
+ 'feature-api-feature-server-rules': '/content/docs/feature-api/feature-server/rules.md',
171
+ 'feature-api-feature-server-scheduling': '/content/docs/feature-api/feature-server/Scheduling.md',
172
+ 'feature-api-feature-server-schema': '/content/docs/feature-api/feature-server/schema.md',
173
+ 'feature-api-feature-server-services': '/content/docs/feature-api/feature-server/services.md',
174
+ 'feature-api-feature-server-setup-resource-crud': '/content/docs/feature-api/feature-server/setup-resource-crud.md',
175
+ 'feature-api-index': '/content/docs/feature-api/index.md',
176
+ 'generators-project-generate-fullproject': '/content/docs/Generators/Project/generate-fullproject.md',
177
+ 'graphql-apolloclient-mutation': '/content/docs/graphql/apolloClient-mutation.md',
178
+ 'graphql-index': '/content/docs/graphql/index.md',
179
+ 'graphql-scalars': '/content/docs/graphql/scalars.md',
180
+ 'help-index': '/content/docs/help/index.md',
181
+ 'help-intro': '/content/docs/help/intro.md',
182
+ 'intl-ant-design-menu-translation': '/content/docs/intl/ant-design-menu-translation.md',
183
+ 'intl-intl-namespace': '/content/docs/intl/intl-namespace.md',
184
+ 'intl-vite-plugin-intl': '/content/docs/intl/vite-plugin-intl.md',
185
+ 'intl-webpack-plugin-intl': '/content/docs/intl/webpack-plugin-intl.md',
186
+ 'knowledge-basic-fullstack': '/content/docs/knowledge/basic-fullstack.md',
187
+ 'llm-backend-proxies-services-llm': '/content/docs/LLM/backend-proxies-services-llm.md',
188
+ 'llm-backend-service-llm': '/content/docs/LLM/backend-service-llm.md',
189
+ 'llm-db_migration_llm': '/content/docs/LLM/db_migration_llm.md',
190
+ 'llm-frontend-remix-15.3-upgrade-llm': '/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md',
191
+ 'llm-inngest-inngest_function_development_guide_llm': '/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md',
192
+ 'llm-inngest-inngest_namespace_llm': '/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md',
193
+ 'llm-llm_workflow_namespace': '/content/docs/LLM/llm_workflow_namespace.md',
194
+ 'llm-logger.llm': '/content/docs/LLM/Logger.llm.md',
195
+ 'llm-organization-components-form-llm': '/content/docs/LLM/organization-components-form-llm.md',
196
+ 'llm-page-component-llm': '/content/docs/LLM/page-component-llm.md',
197
+ 'llm-preferences-settings-llm': '/content/docs/LLM/preferences-settings-llm.md',
198
+ 'llm-tailwind-css-llm': '/content/docs/LLM/tailwind-css-llm.md',
199
+ 'mailing-index': '/content/docs/mailing/index.md',
200
+ 'mailing-mailing-template': '/content/docs/mailing/mailing-template.md',
201
+ 'mobile-app-navigation-generator': '/content/docs/mobile/App-navigation-generator.md',
202
+ 'mobile-eas-profile-build': '/content/docs/mobile/eas-profile-build.md',
203
+ 'mobile-expo-push-notification-setup': '/content/docs/mobile/expo-push-notification-setup.md',
204
+ 'mobile-index': '/content/docs/mobile/index.md',
205
+ 'mobile-mobiletestcases': '/content/docs/mobile/MobileTestCases.md',
206
+ 'mobile-routes': '/content/docs/mobile/routes.md',
207
+ 'organization-adding-account-context': '/content/docs/organization/adding-account-context.md',
208
+ 'organization-adding-org-mobile-navigation': '/content/docs/organization/adding-org-mobile-navigation.md',
209
+ 'organization-adding-org-web-navigation': '/content/docs/organization/adding-org-web-navigation.md',
210
+ 'organization-index': '/content/docs/organization/index.md',
211
+ 'organization-initialization': '/content/docs/organization/initialization.md',
212
+ 'organization-organization-resource-vs-resource': '/content/docs/organization/organization-resource-vs-resource.md',
213
+ 'remix-configuration-component-structure-best-practices': '/content/docs/remix/configuration/component-structure-best-practices.md',
214
+ 'remix-configuration-configurations': '/content/docs/remix/configuration/configurations.md',
215
+ 'remix-configuration-css-import-and-stylesheets': '/content/docs/remix/configuration/css-import-and-stylesheets.md',
216
+ 'remix-configuration-dont-subcomponent-network': '/content/docs/remix/configuration/dont-subcomponent-network.md',
217
+ 'remix-configuration-generated-data-loaders': '/content/docs/remix/configuration/generated-data-loaders.md',
218
+ 'remix-configuration-generated-resource-loaders': '/content/docs/remix/configuration/generated-resource-loaders.md',
219
+ 'remix-configuration-query-params-generator': '/content/docs/remix/configuration/query-params-generator.md',
220
+ 'remix-configuration-routes-extra-icons': '/content/docs/remix/configuration/routes-extra-icons.md',
221
+ 'remix-configuration-routes-json-advanced': '/content/docs/remix/configuration/routes-json-advanced.md',
222
+ 'remix-configuration-routes-json-auth': '/content/docs/remix/configuration/routes-json-auth.md',
223
+ 'remix-configuration-routes-json-best-practices': '/content/docs/remix/configuration/routes-json-best-practices.md',
224
+ 'remix-configuration-routes-json-fields': '/content/docs/remix/configuration/routes-json-fields.md',
225
+ 'remix-configuration-routes-json-graphql': '/content/docs/remix/configuration/routes-json-graphql.md',
226
+ 'remix-configuration-routes-json-index': '/content/docs/remix/configuration/routes-json-index.md',
227
+ 'remix-configuration-routes-json-loaders': '/content/docs/remix/configuration/routes-json-loaders.md',
228
+ 'remix-configuration-routes-json-middleware': '/content/docs/remix/configuration/routes-json-middleware.md',
229
+ 'remix-configuration-routes-json-overview': '/content/docs/remix/configuration/routes-json-overview.md',
230
+ 'remix-data-loaders': '/content/docs/remix/data-loaders.md',
231
+ 'remix-devtools-remix-devtools': '/content/docs/remix/devtools/remix-devtools.md',
232
+ 'remix-examples-changes-using-servercode': '/content/docs/remix/examples/changes-using-servercode.md',
233
+ 'remix-extra-icons': '/content/docs/remix/extra-icons.md',
234
+ 'remix-extra-links': '/content/docs/remix/extra-links.md',
235
+ 'remix-generated-data-loaders': '/content/docs/remix/generated-data-loaders.md',
236
+ 'remix-queryparamsgenerator': '/content/docs/remix/queryParamsGenerator.md',
237
+ 'remix-resources': '/content/docs/remix/resources.md',
238
+ 'remix-styles': '/content/docs/remix/styles.md',
239
+ 'remix-wiki': '/content/docs/remix/wiki.md',
240
+ 'security-auth-wrapper-auth-wrapper': '/content/docs/security/auth-wrapper/auth-wrapper.md',
241
+ 'security-index': '/content/docs/security/index.md',
242
+ 'security-secure-button-mobilenative': '/content/docs/security/secure-button-mobilenative.md',
243
+ 'security-secure-button-web': '/content/docs/security/secure-button-web.md',
244
+ 'server-side-account-customization': '/content/docs/server-side/account-customization.md',
245
+ 'server-side-apollo-caching': '/content/docs/server-side/apollo/caching.md',
246
+ 'server-side-backend-architecture-final-decision': '/content/docs/server-side/backend-architecture/FINAL-DECISION.md',
247
+ 'server-side-backend-architecture-index1': '/content/docs/server-side/backend-architecture/index1.md',
248
+ 'server-side-backend-architecture-true-final-architecture': '/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md',
249
+ 'server-side-backend-coding': '/content/docs/server-side/backend-coding.md',
250
+ 'server-side-e2b-manageing-template': '/content/docs/server-side/e2b/manageing-template.md',
251
+ 'server-side-index': '/content/docs/server-side/index.md',
252
+ 'server-side-inngest-functions-module': '/content/docs/server-side/inngest-functions-module.md',
253
+ 'server-side-listen-stripe-events': '/content/docs/server-side/listen-stripe-events.md',
254
+ 'server-side-slug-service': '/content/docs/server-side/slug-service.md',
255
+ 'tests-index': '/content/docs/tests/index.md',
256
+ 'tests-jest-test-debug-vscode': '/content/docs/tests/jest-test-debug-vscode.md',
257
+ 'tests-known-errors': '/content/docs/tests/known-errors.md',
258
+ 'tests-service-test-template': '/content/docs/tests/service-test-template.md',
259
+ 'tests-test-setup': '/content/docs/tests/test-setup.md',
260
+ 'ui-schemabasedui': '/content/docs/UI/SchemaBasedUI.md',
261
+ 'ui-slotfillcomponent': '/content/docs/UI/SlotFillComponent.md'
262
+ };
263
+ const filePath = contentPathMap[contentId];
264
+ if (!filePath) {
265
+ console.warn(`No markdown file found for content ID: ${contentId}`);
266
+ return '';
267
+ }
268
+ // Try to load actual markdown file first, fallback to sample content
269
+ try {
270
+ const actualContent = await loadActualMarkdownFile(filePath);
271
+ if (actualContent) {
272
+ return actualContent;
273
+ }
274
+ } catch (error) {
275
+ console.log(`Could not load actual markdown file for ${contentId}, using sample content`);
276
+ }
277
+ // Fallback to sample content for development
278
+ return getSampleContent(contentId);
279
+ } catch (error) {
280
+ console.error(`Error loading markdown content for ${contentId}:`, error);
281
+ return '';
282
+ }
283
+ };
284
+ // Function to load actual markdown files
285
+ const loadActualMarkdownFile = async filePath => {
286
+ try {
287
+ // Fetch from the app server. The help server should serve the repo's `src/content`
288
+ // directory at `/content`, so these paths resolve in the browser.
289
+ const response = await fetch(filePath);
290
+ if (!response.ok) return null;
291
+ return await response.text();
292
+ } catch (error) {
293
+ console.error(`Error loading markdown file ${filePath}:`, error);
294
+ return null;
295
+ }
296
+ };
297
+ // Sample content function for development
298
+ const getSampleContent = contentId => {
299
+ return `# ${contentId.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase())}
300
+
301
+ This is sample content for ${contentId}. The actual markdown file content would be loaded here in a production environment.
302
+
303
+ ## Overview
304
+
305
+ This article covers the topic of ${contentId.replace(/-/g, ' ')} and provides comprehensive information about this subject.
306
+
307
+ ## Key Points
308
+
309
+ - **Feature 1**: Description of the first key feature
310
+ - **Feature 2**: Description of the second key feature
311
+ - **Feature 3**: Description of the third key feature
312
+
313
+ ## Getting Started
314
+
315
+ To get started with this topic:
316
+
317
+ 1. **Step 1**: First step description
318
+ 2. **Step 2**: Second step description
319
+ 3. **Step 3**: Third step description
320
+
321
+ ## Advanced Usage
322
+
323
+ For advanced users, here are some additional tips and techniques:
324
+
325
+ - **Tip 1**: Advanced tip description
326
+ - **Tip 2**: Another advanced tip
327
+ - **Tip 3**: Final advanced tip
328
+
329
+ ## Support
330
+
331
+ If you need help with this topic, please refer to our support resources or contact our team.`;
332
+ };
333
+ // Category metadata - this defines the structure and metadata based on actual content
334
+ const categoryMetadata = {
335
+ 'adminide-modules': {
336
+ id: 'adminide-modules',
337
+ title: 'AdminIDE Modules',
338
+ description: 'AdminIDE Module Documentation | Setup | Configuration',
339
+ iconType: 'Documentation',
340
+ articles: [{
341
+ id: 'adminide-modules-account-auth0-login',
342
+ title: 'Auth0 Login',
343
+ description: 'Facebook Setup ...',
344
+ slug: 'adminide-modules-account-auth0-login',
345
+ author: 'Documentation',
346
+ updatedAt: '2024-06-02T00:00:00',
347
+ categoryId: 'adminide-modules'
348
+ }, {
349
+ id: 'adminide-modules-account-index',
350
+ title: 'Account',
351
+ description: 'Account ...',
352
+ slug: 'adminide-modules-account-index',
353
+ author: 'Documentation',
354
+ updatedAt: '2024-06-02T00:00:00',
355
+ categoryId: 'adminide-modules'
356
+ }, {
357
+ id: 'adminide-modules-account-keycloak-remix-setup',
358
+ title: 'Keycloak Remix Setup',
359
+ description: 'Keycloak Authentication Setup with Remix ...',
360
+ slug: 'adminide-modules-account-keycloak-remix-setup',
361
+ author: 'Documentation',
362
+ updatedAt: '2024-06-02T00:00:00',
363
+ categoryId: 'adminide-modules'
364
+ }, {
365
+ id: 'adminide-modules-account-remix-auth-setup',
366
+ title: 'Remix Auth Setup',
367
+ description: 'Remix Auth Setup ...',
368
+ slug: 'adminide-modules-account-remix-auth-setup',
369
+ author: 'Documentation',
370
+ updatedAt: '2024-06-02T00:00:00',
371
+ categoryId: 'adminide-modules'
372
+ }, {
373
+ id: 'adminide-modules-account-various-auth-qatest',
374
+ title: 'Various Auth Qatest',
375
+ description: 'Remix Token Renewal Flow ...',
376
+ slug: 'adminide-modules-account-various-auth-qatest',
377
+ author: 'Documentation',
378
+ updatedAt: '2024-06-02T00:00:00',
379
+ categoryId: 'adminide-modules'
380
+ }, {
381
+ id: 'adminide-modules-api-builders-graphql',
382
+ title: 'Graphql',
383
+ description: 'Graphql documentation.',
384
+ slug: 'adminide-modules-api-builders-graphql',
385
+ author: 'Documentation',
386
+ updatedAt: 'Recently',
387
+ categoryId: 'adminide-modules'
388
+ }, {
389
+ id: 'adminide-modules-billing-payments-index',
390
+ title: 'Payments',
391
+ description: 'Payments...',
392
+ slug: 'adminide-modules-billing-payments-index',
393
+ author: 'Documentation',
394
+ updatedAt: '2024-06-02T00:00:00',
395
+ categoryId: 'adminide-modules'
396
+ }, {
397
+ id: 'adminide-modules-billing-payments-stripe-index',
398
+ title: 'Stripe',
399
+ description: 'Stripe...',
400
+ slug: 'adminide-modules-billing-payments-stripe-index',
401
+ author: 'Documentation',
402
+ updatedAt: '2024-06-02T00:00:00',
403
+ categoryId: 'adminide-modules'
404
+ }, {
405
+ id: 'adminide-modules-billing-payments-stripe-settingup-stripe-locally',
406
+ title: 'Settingup Stripe Locally',
407
+ description: 'Setting up stripe locally...',
408
+ slug: 'adminide-modules-billing-payments-stripe-settingup-stripe-locally',
409
+ author: 'Documentation',
410
+ updatedAt: '2024-06-02T00:00:00',
411
+ categoryId: 'adminide-modules'
412
+ }, {
413
+ id: 'adminide-modules-billing-tier-config',
414
+ title: 'Tier Config',
415
+ description: 'Tier Config documentation.',
416
+ slug: 'adminide-modules-billing-tier-config',
417
+ author: 'Documentation',
418
+ updatedAt: 'Recently',
419
+ categoryId: 'adminide-modules'
420
+ }, {
421
+ id: 'adminide-modules-connectors-connector',
422
+ title: 'Connector',
423
+ description: 'Connector documentation.',
424
+ slug: 'adminide-modules-connectors-connector',
425
+ author: 'Documentation',
426
+ updatedAt: 'Recently',
427
+ categoryId: 'adminide-modules'
428
+ }, {
429
+ id: 'adminide-modules-file-upload-index',
430
+ title: 'File upload',
431
+ description: 'File Upload...',
432
+ slug: 'adminide-modules-file-upload-index',
433
+ author: 'Documentation',
434
+ updatedAt: '2024-06-02T00:00:00',
435
+ categoryId: 'adminide-modules'
436
+ }, {
437
+ id: 'adminide-modules-file-upload-setup',
438
+ title: 'Setup',
439
+ description: 'Setup...',
440
+ slug: 'adminide-modules-file-upload-setup',
441
+ author: 'Documentation',
442
+ updatedAt: '2024-06-02T00:00:00',
443
+ categoryId: 'adminide-modules'
444
+ }, {
445
+ id: 'adminide-modules-file-upload-upload-file-using-signed-url',
446
+ title: 'Upload File Using Signed Url',
447
+ description: 'File Uploads...',
448
+ slug: 'adminide-modules-file-upload-upload-file-using-signed-url',
449
+ author: 'Documentation',
450
+ updatedAt: '2024-06-02T00:00:00',
451
+ categoryId: 'adminide-modules'
452
+ }, {
453
+ id: 'adminide-modules-preferences-addadditionalpermissions',
454
+ title: 'AddAdditionalPermissions',
455
+ description: 'Add Additional Permissions...',
456
+ slug: 'adminide-modules-preferences-addadditionalpermissions',
457
+ author: 'Documentation',
458
+ updatedAt: '2024-06-02T00:00:00',
459
+ categoryId: 'adminide-modules'
460
+ }, {
461
+ id: 'adminide-modules-preferences-configuration',
462
+ title: 'Configuration',
463
+ description: 'Configuration...',
464
+ slug: 'adminide-modules-preferences-configuration',
465
+ author: 'Documentation',
466
+ updatedAt: '2024-06-02T00:00:00',
467
+ categoryId: 'adminide-modules'
468
+ }, {
469
+ id: 'adminide-modules-preferences-policy-configuration',
470
+ title: 'Policy Configuration',
471
+ description: 'Policy Configuration...',
472
+ slug: 'adminide-modules-preferences-policy-configuration',
473
+ author: 'Documentation',
474
+ updatedAt: '2024-06-02T00:00:00',
475
+ categoryId: 'adminide-modules'
476
+ }, {
477
+ id: 'adminide-modules-preferences-ui-components-resourcesettingsloader',
478
+ title: 'ResourceSettingsLoader',
479
+ description: 'ResourceSettingsLoader documentation.',
480
+ slug: 'adminide-modules-preferences-ui-components-resourcesettingsloader',
481
+ author: 'Documentation',
482
+ updatedAt: 'Recently',
483
+ categoryId: 'adminide-modules'
484
+ }, {
485
+ id: 'adminide-modules-preferences-contribute_scope_target',
486
+ title: 'Contribute_scope_target',
487
+ description: 'Contribute_scope_target documentation.',
488
+ slug: 'adminide-modules-preferences-contribute_scope_target',
489
+ author: 'Documentation',
490
+ updatedAt: 'Recently',
491
+ categoryId: 'adminide-modules'
492
+ }, {
493
+ id: 'adminide-modules-preferences-generate-urii',
494
+ title: 'Generate Urii',
495
+ description: 'Generate URI...',
496
+ slug: 'adminide-modules-preferences-generate-urii',
497
+ author: 'Documentation',
498
+ updatedAt: '2024-06-02T00:00:00',
499
+ categoryId: 'adminide-modules'
500
+ }, {
501
+ id: 'adminide-modules-preferences-index',
502
+ title: 'Preferences',
503
+ description: 'Preferences...',
504
+ slug: 'adminide-modules-preferences-index',
505
+ author: 'Documentation',
506
+ updatedAt: '2024-06-02T00:00:00',
507
+ categoryId: 'adminide-modules'
508
+ }, {
509
+ id: 'adminide-modules-preferences-machine-configuration',
510
+ title: 'Machine Configuration',
511
+ description: 'Machine Configuration...',
512
+ slug: 'adminide-modules-preferences-machine-configuration',
513
+ author: 'Documentation',
514
+ updatedAt: '2024-06-02T00:00:00',
515
+ categoryId: 'adminide-modules'
516
+ }, {
517
+ id: 'adminide-modules-preferences-pagesettings-generatecdecodeuri',
518
+ title: 'GenerateCdecodeUri',
519
+ description: 'GenerateCdecodeUri documentation.',
520
+ slug: 'adminide-modules-preferences-pagesettings-generatecdecodeuri',
521
+ author: 'Documentation',
522
+ updatedAt: 'Recently',
523
+ categoryId: 'adminide-modules'
524
+ }, {
525
+ id: 'adminide-modules-preferences-pagesettings-migratingfromusesettings',
526
+ title: 'MigratingFromUseSettings',
527
+ description: 'MigratingFromUseSettings documentation.',
528
+ slug: 'adminide-modules-preferences-pagesettings-migratingfromusesettings',
529
+ author: 'Documentation',
530
+ updatedAt: 'Recently',
531
+ categoryId: 'adminide-modules'
532
+ }, {
533
+ id: 'adminide-modules-preferences-permissions-roles-permissions',
534
+ title: 'Roles Permissions',
535
+ description: 'Roles & Permissions...',
536
+ slug: 'adminide-modules-preferences-permissions-roles-permissions',
537
+ author: 'Documentation',
538
+ updatedAt: '2024-06-02T00:00:00',
539
+ categoryId: 'adminide-modules'
540
+ }, {
541
+ id: 'adminide-modules-preferences-permissions-settinguserpermissions',
542
+ title: 'SettingUserPermissions',
543
+ description: 'Setting User Permissions...',
544
+ slug: 'adminide-modules-preferences-permissions-settinguserpermissions',
545
+ author: 'Documentation',
546
+ updatedAt: '2024-06-02T00:00:00',
547
+ categoryId: 'adminide-modules'
548
+ }, {
549
+ id: 'adminide-modules-preferences-preference-dependency',
550
+ title: 'Preference Dependency',
551
+ description: 'Preference Dependency...',
552
+ slug: 'adminide-modules-preferences-preference-dependency',
553
+ author: 'Documentation',
554
+ updatedAt: '2024-06-02T00:00:00',
555
+ categoryId: 'adminide-modules'
556
+ }, {
557
+ id: 'adminide-modules-preferences-route-based-configuration',
558
+ title: 'Route Based Configuration',
559
+ description: 'Route Based Configuration...',
560
+ slug: 'adminide-modules-preferences-route-based-configuration',
561
+ author: 'Documentation',
562
+ updatedAt: '2024-06-02T00:00:00',
563
+ categoryId: 'adminide-modules'
564
+ }, {
565
+ id: 'adminide-modules-preferences-schema-configuration',
566
+ title: 'Schema Configuration',
567
+ description: 'Schema Configuration...',
568
+ slug: 'adminide-modules-preferences-schema-configuration',
569
+ author: 'Documentation',
570
+ updatedAt: '2024-06-02T00:00:00',
571
+ categoryId: 'adminide-modules'
572
+ }, {
573
+ id: 'adminide-modules-preferences-supported',
574
+ title: 'Supported',
575
+ description: 'Supported...',
576
+ slug: 'adminide-modules-preferences-supported',
577
+ author: 'Documentation',
578
+ updatedAt: '2024-06-02T00:00:00',
579
+ categoryId: 'adminide-modules'
580
+ }, {
581
+ id: 'adminide-modules-preferences-usesettingsloader',
582
+ title: 'UseSettingsLoader',
583
+ description: 'Use Setting Loader...',
584
+ slug: 'adminide-modules-preferences-usesettingsloader',
585
+ author: 'Documentation',
586
+ updatedAt: '2024-06-02T00:00:00',
587
+ categoryId: 'adminide-modules'
588
+ }, {
589
+ id: 'adminide-modules-project-tools-auth-providers',
590
+ title: 'Auth Providers',
591
+ description: 'Auth Providers documentation.',
592
+ slug: 'adminide-modules-project-tools-auth-providers',
593
+ author: 'Documentation',
594
+ updatedAt: 'Recently',
595
+ categoryId: 'adminide-modules'
596
+ }, {
597
+ id: 'adminide-modules-project-tools-keycloak-guide',
598
+ title: 'Keycloak Guide',
599
+ description: 'Keycloak Guide documentation.',
600
+ slug: 'adminide-modules-project-tools-keycloak-guide',
601
+ author: 'Documentation',
602
+ updatedAt: 'Recently',
603
+ categoryId: 'adminide-modules'
604
+ }, {
605
+ id: 'adminide-modules-project-tools-tenant-management-tenant-based-authentication',
606
+ title: 'Tenant Based Authentication',
607
+ description: 'Tenant Based Authentication documentation.',
608
+ slug: 'adminide-modules-project-tools-tenant-management-tenant-based-authentication',
609
+ author: 'Documentation',
610
+ updatedAt: 'Recently',
611
+ categoryId: 'adminide-modules'
612
+ }, {
613
+ id: 'adminide-modules-project-tools-tenant-management-tenant-management',
614
+ title: 'Tenant Management',
615
+ description: 'Tenant Management documentation.',
616
+ slug: 'adminide-modules-project-tools-tenant-management-tenant-management',
617
+ author: 'Documentation',
618
+ updatedAt: 'Recently',
619
+ categoryId: 'adminide-modules'
620
+ }, {
621
+ id: 'adminide-modules-project-tools-tenant-management-tenants',
622
+ title: 'Tenants',
623
+ description: 'Tenants documentation.',
624
+ slug: 'adminide-modules-project-tools-tenant-management-tenants',
625
+ author: 'Documentation',
626
+ updatedAt: 'Recently',
627
+ categoryId: 'adminide-modules'
628
+ }]
629
+ },
630
+ 'chrome-extension': {
631
+ id: 'chrome-extension',
632
+ title: 'Chrome Extension',
633
+ description: 'Chrome Extension Setup | Configuration',
634
+ iconType: 'Documentation',
635
+ articles: [{
636
+ id: 'chrome-extension-index',
637
+ title: 'Chrome extension',
638
+ description: 'Chrome Extension ...',
639
+ slug: 'chrome-extension-index',
640
+ author: 'Documentation',
641
+ updatedAt: '2024-06-02T00:00:00',
642
+ categoryId: 'chrome-extension'
643
+ }, {
644
+ id: 'chrome-extension-setup',
645
+ title: 'Setup',
646
+ description: 'Setup...',
647
+ slug: 'chrome-extension-setup',
648
+ author: 'Documentation',
649
+ updatedAt: '2024-06-02T00:00:00',
650
+ categoryId: 'chrome-extension'
651
+ }]
652
+ },
653
+ contributing: {
654
+ id: 'contributing',
655
+ title: 'Contributing',
656
+ description: 'Contributing Guide | Development | Guidelines',
657
+ iconType: 'Documentation',
658
+ articles: [{
659
+ id: 'contributing-adding-package',
660
+ title: 'Adding Package',
661
+ description: 'Adding package to sub packages...',
662
+ slug: 'contributing-adding-package',
663
+ author: 'Documentation',
664
+ updatedAt: '2024-06-02T00:00:00',
665
+ categoryId: 'contributing'
666
+ }, {
667
+ id: 'contributing-adding_new_modules',
668
+ title: 'Adding_new_modules',
669
+ description: 'Adding Modules with FullStack Pro Kit...',
670
+ slug: 'contributing-adding_new_modules',
671
+ author: 'Documentation',
672
+ updatedAt: '2024-06-02T00:00:00',
673
+ categoryId: 'contributing'
674
+ }, {
675
+ id: 'contributing-architecture-updates',
676
+ title: 'Architecture Updates',
677
+ description: 'Architecture Update...',
678
+ slug: 'contributing-architecture-updates',
679
+ author: 'Documentation',
680
+ updatedAt: '2024-06-02T00:00:00',
681
+ categoryId: 'contributing'
682
+ }, {
683
+ id: 'contributing-avoid-using-promises-ui',
684
+ title: 'Avoid Using Promises Ui',
685
+ description: 'Avoid using promises in UI...',
686
+ slug: 'contributing-avoid-using-promises-ui',
687
+ author: 'Documentation',
688
+ updatedAt: '2024-06-02T00:00:00',
689
+ categoryId: 'contributing'
690
+ }, {
691
+ id: 'contributing-coding-guidelines',
692
+ title: 'Coding Guidelines',
693
+ description: 'Coding Guidelines...',
694
+ slug: 'contributing-coding-guidelines',
695
+ author: 'Documentation',
696
+ updatedAt: '2024-06-02T00:00:00',
697
+ categoryId: 'contributing'
698
+ }, {
699
+ id: 'contributing-do-and-dont',
700
+ title: 'Do And Dont',
701
+ description: "Do and Dont't...",
702
+ slug: 'contributing-do-and-dont',
703
+ author: 'Documentation',
704
+ updatedAt: '2024-06-02T00:00:00',
705
+ categoryId: 'contributing'
706
+ }, {
707
+ id: 'contributing-faq',
708
+ title: 'Faq',
709
+ description: 'Babel, JSX, and Build Steps...',
710
+ slug: 'contributing-faq',
711
+ author: 'Documentation',
712
+ updatedAt: '2024-06-02T00:00:00',
713
+ categoryId: 'contributing'
714
+ }, {
715
+ id: 'contributing-folder-setup-browser',
716
+ title: 'Browser',
717
+ description: 'Browser...',
718
+ slug: 'contributing-folder-setup-browser',
719
+ author: 'Documentation',
720
+ updatedAt: '2024-06-02T00:00:00',
721
+ categoryId: 'contributing'
722
+ }, {
723
+ id: 'contributing-folder-setup-config',
724
+ title: 'Config',
725
+ description: 'Config...',
726
+ slug: 'contributing-folder-setup-config',
727
+ author: 'Documentation',
728
+ updatedAt: '2024-06-02T00:00:00',
729
+ categoryId: 'contributing'
730
+ }, {
731
+ id: 'contributing-folder-setup-containers-server',
732
+ title: 'Containers Server',
733
+ description: 'Container Server...',
734
+ slug: 'contributing-folder-setup-containers-server',
735
+ author: 'Documentation',
736
+ updatedAt: '2024-06-02T00:00:00',
737
+ categoryId: 'contributing'
738
+ }, {
739
+ id: 'contributing-folder-setup-core',
740
+ title: 'Core',
741
+ description: 'Core...',
742
+ slug: 'contributing-folder-setup-core',
743
+ author: 'Documentation',
744
+ updatedAt: '2024-06-02T00:00:00',
745
+ categoryId: 'contributing'
746
+ }, {
747
+ id: 'contributing-folder-setup-graphql',
748
+ title: 'Graphql',
749
+ description: 'Graphql...',
750
+ slug: 'contributing-folder-setup-graphql',
751
+ author: 'Documentation',
752
+ updatedAt: '2024-06-02T00:00:00',
753
+ categoryId: 'contributing'
754
+ }, {
755
+ id: 'contributing-folder-setup-index',
756
+ title: 'Folder setup',
757
+ description: 'Folder Setup...',
758
+ slug: 'contributing-folder-setup-index',
759
+ author: 'Documentation',
760
+ updatedAt: '2024-06-02T00:00:00',
761
+ categoryId: 'contributing'
762
+ }, {
763
+ id: 'contributing-folder-setup-module',
764
+ title: 'Module',
765
+ description: 'Module...',
766
+ slug: 'contributing-folder-setup-module',
767
+ author: 'Documentation',
768
+ updatedAt: '2024-06-02T00:00:00',
769
+ categoryId: 'contributing'
770
+ }, {
771
+ id: 'contributing-folder-setup-server',
772
+ title: 'Server',
773
+ description: 'Server...',
774
+ slug: 'contributing-folder-setup-server',
775
+ author: 'Documentation',
776
+ updatedAt: '2024-06-02T00:00:00',
777
+ categoryId: 'contributing'
778
+ }, {
779
+ id: 'contributing-folder-setup-services',
780
+ title: 'Services',
781
+ description: 'Services...',
782
+ slug: 'contributing-folder-setup-services',
783
+ author: 'Documentation',
784
+ updatedAt: '2024-06-02T00:00:00',
785
+ categoryId: 'contributing'
786
+ }, {
787
+ id: 'contributing-folder-setup-store',
788
+ title: 'Store',
789
+ description: 'Store...',
790
+ slug: 'contributing-folder-setup-store',
791
+ author: 'Documentation',
792
+ updatedAt: '2024-06-02T00:00:00',
793
+ categoryId: 'contributing'
794
+ }, {
795
+ id: 'contributing-frontend-coding',
796
+ title: 'Frontend Coding',
797
+ description: 'Frontend Coding...',
798
+ slug: 'contributing-frontend-coding',
799
+ author: 'Documentation',
800
+ updatedAt: '2024-06-02T00:00:00',
801
+ categoryId: 'contributing'
802
+ }, {
803
+ id: 'contributing-git-subtree-sharing',
804
+ title: 'Git Subtree Sharing',
805
+ description: 'Git Subtree Sharing...',
806
+ slug: 'contributing-git-subtree-sharing',
807
+ author: 'Documentation',
808
+ updatedAt: '2024-06-02T00:00:00',
809
+ categoryId: 'contributing'
810
+ }, {
811
+ id: 'contributing-graphql-subscriptions',
812
+ title: 'Graphql Subscriptions',
813
+ description: 'Grapgql Subscriptions...',
814
+ slug: 'contributing-graphql-subscriptions',
815
+ author: 'Documentation',
816
+ updatedAt: '2024-06-02T00:00:00',
817
+ categoryId: 'contributing'
818
+ }, {
819
+ id: 'contributing-how-to-contribute',
820
+ title: 'How To Contribute',
821
+ description: 'How To Contribute ...',
822
+ slug: 'contributing-how-to-contribute',
823
+ author: 'Documentation',
824
+ updatedAt: '2024-06-02T00:00:00',
825
+ categoryId: 'contributing'
826
+ }, {
827
+ id: 'contributing-how_to_check_pure_esm',
828
+ title: 'How_to_check_pure_esm',
829
+ description: 'Check the notes for pure esm ...',
830
+ slug: 'contributing-how_to_check_pure_esm',
831
+ author: 'Documentation',
832
+ updatedAt: '2024-06-02T00:00:00',
833
+ categoryId: 'contributing'
834
+ }, {
835
+ id: 'contributing-index',
836
+ title: 'Contributing',
837
+ description: 'Contribute...',
838
+ slug: 'contributing-index',
839
+ author: 'Documentation',
840
+ updatedAt: '2024-06-02T00:00:00',
841
+ categoryId: 'contributing'
842
+ }, {
843
+ id: 'contributing-installation-issues',
844
+ title: 'Installation Issues',
845
+ description: 'Installation Issues...',
846
+ slug: 'contributing-installation-issues',
847
+ author: 'Documentation',
848
+ updatedAt: '2024-06-02T00:00:00',
849
+ categoryId: 'contributing'
850
+ }, {
851
+ id: 'contributing-keyboard-shortcut',
852
+ title: 'Keyboard Shortcut',
853
+ description: 'Keyboard Shortcuts...',
854
+ slug: 'contributing-keyboard-shortcut',
855
+ author: 'Documentation',
856
+ updatedAt: '2024-06-02T00:00:00',
857
+ categoryId: 'contributing'
858
+ }, {
859
+ id: 'contributing-language-locale-support',
860
+ title: 'Locale Support',
861
+ description: 'Locale Support...',
862
+ slug: 'contributing-language-locale-support',
863
+ author: 'Documentation',
864
+ updatedAt: '2024-06-02T00:00:00',
865
+ categoryId: 'contributing'
866
+ }, {
867
+ id: 'contributing-lerna-build-tools',
868
+ title: 'Lerna Build Tools',
869
+ description: 'Build Tools...',
870
+ slug: 'contributing-lerna-build-tools',
871
+ author: 'Documentation',
872
+ updatedAt: '2024-06-02T00:00:00',
873
+ categoryId: 'contributing'
874
+ }, {
875
+ id: 'contributing-lerna-yarn-workspaces',
876
+ title: 'Lerna Yarn Workspaces',
877
+ description: 'Lerna Yarn Workspaces...',
878
+ slug: 'contributing-lerna-yarn-workspaces',
879
+ author: 'Documentation',
880
+ updatedAt: '2024-06-02T00:00:00',
881
+ categoryId: 'contributing'
882
+ }, {
883
+ id: 'contributing-lint-and-formatter',
884
+ title: 'Lint And Formatter',
885
+ description: 'Lint and Formatter...',
886
+ slug: 'contributing-lint-and-formatter',
887
+ author: 'Documentation',
888
+ updatedAt: '2024-06-02T00:00:00',
889
+ categoryId: 'contributing'
890
+ }, {
891
+ id: 'contributing-mobile-setup',
892
+ title: 'Mobile Setup',
893
+ description: 'Mobile Setup...',
894
+ slug: 'contributing-mobile-setup',
895
+ author: 'Documentation',
896
+ updatedAt: '2024-06-02T00:00:00',
897
+ categoryId: 'contributing'
898
+ }, {
899
+ id: 'contributing-project-setup',
900
+ title: 'Project Setup',
901
+ description: 'Project Setup...',
902
+ slug: 'contributing-project-setup',
903
+ author: 'Documentation',
904
+ updatedAt: '2024-06-02T00:00:00',
905
+ categoryId: 'contributing'
906
+ }, {
907
+ id: 'contributing-react-index',
908
+ title: 'React',
909
+ description: 'React...',
910
+ slug: 'contributing-react-index',
911
+ author: 'Documentation',
912
+ updatedAt: '2024-06-02T00:00:00',
913
+ categoryId: 'contributing'
914
+ }, {
915
+ id: 'contributing-react-lazy-component',
916
+ title: 'Lazy Component',
917
+ description: 'Lazy Component...',
918
+ slug: 'contributing-react-lazy-component',
919
+ author: 'Documentation',
920
+ updatedAt: '2024-06-02T00:00:00',
921
+ categoryId: 'contributing'
922
+ }, {
923
+ id: 'contributing-run-various-options',
924
+ title: 'Run Various Options',
925
+ description: 'Run Various Options...',
926
+ slug: 'contributing-run-various-options',
927
+ author: 'Documentation',
928
+ updatedAt: '2024-06-02T00:00:00',
929
+ categoryId: 'contributing'
930
+ }, {
931
+ id: 'contributing-schema-first-graphql-types',
932
+ title: 'Schema First Graphql Types',
933
+ description: 'Schema First Graphql Types...',
934
+ slug: 'contributing-schema-first-graphql-types',
935
+ author: 'Documentation',
936
+ updatedAt: '2024-06-02T00:00:00',
937
+ categoryId: 'contributing'
938
+ }, {
939
+ id: 'contributing-source-code-organization',
940
+ title: 'Source Code Organization',
941
+ description: 'Source Code Organization...',
942
+ slug: 'contributing-source-code-organization',
943
+ author: 'Documentation',
944
+ updatedAt: '2024-06-02T00:00:00',
945
+ categoryId: 'contributing'
946
+ }, {
947
+ id: 'contributing-staging-docker',
948
+ title: 'Staging Docker',
949
+ description: 'Docker Build and Running Frontend Server...',
950
+ slug: 'contributing-staging-docker',
951
+ author: 'Documentation',
952
+ updatedAt: '2024-06-02T00:00:00',
953
+ categoryId: 'contributing'
954
+ }, {
955
+ id: 'contributing-third-party-apollo-client-v3-tutorials',
956
+ title: 'Apollo Client V3 Tutorials',
957
+ description: 'ApolloClient(v3) tutorials...',
958
+ slug: 'contributing-third-party-apollo-client-v3-tutorials',
959
+ author: 'Documentation',
960
+ updatedAt: '2024-06-02T00:00:00',
961
+ categoryId: 'contributing'
962
+ }, {
963
+ id: 'contributing-third-party-index',
964
+ title: 'Third party',
965
+ description: 'Knowledge Resources...',
966
+ slug: 'contributing-third-party-index',
967
+ author: 'Documentation',
968
+ updatedAt: '2024-06-02T00:00:00',
969
+ categoryId: 'contributing'
970
+ }, {
971
+ id: 'contributing-typescript-contribution',
972
+ title: 'Typescript Contribution',
973
+ description: 'Typescript Contribution...',
974
+ slug: 'contributing-typescript-contribution',
975
+ author: 'Documentation',
976
+ updatedAt: '2024-06-02T00:00:00',
977
+ categoryId: 'contributing'
978
+ }]
979
+ },
980
+ devops: {
981
+ id: 'devops',
982
+ title: 'DevOps',
983
+ description: 'Deployment | CI/CD | Versioning',
984
+ iconType: 'Documentation',
985
+ articles: [{
986
+ id: 'devops-app-deploy-new-version',
987
+ title: 'App Deploy New Version',
988
+ description: 'Procedure to deploy...',
989
+ slug: 'devops-app-deploy-new-version',
990
+ author: 'Documentation',
991
+ updatedAt: '2024-06-02T00:00:00',
992
+ categoryId: 'devops'
993
+ }, {
994
+ id: 'devops-index',
995
+ title: 'Devops',
996
+ description: 'DevOps...',
997
+ slug: 'devops-index',
998
+ author: 'Documentation',
999
+ updatedAt: '2024-06-02T00:00:00',
1000
+ categoryId: 'devops'
1001
+ }, {
1002
+ id: 'devops-mobile-jenkins-build',
1003
+ title: 'Mobile Jenkins Build',
1004
+ description: 'Mobile Jenkins Build...',
1005
+ slug: 'devops-mobile-jenkins-build',
1006
+ author: 'Documentation',
1007
+ updatedAt: '2024-06-02T00:00:00',
1008
+ categoryId: 'devops'
1009
+ }, {
1010
+ id: 'devops-versioning-the-project',
1011
+ title: 'Versioning The Project',
1012
+ description: 'Versioning the Project...',
1013
+ slug: 'devops-versioning-the-project',
1014
+ author: 'Documentation',
1015
+ updatedAt: '2024-06-02T00:00:00',
1016
+ categoryId: 'devops'
1017
+ }]
1018
+ },
1019
+ docs: {
1020
+ id: 'docs',
1021
+ title: 'Docs',
1022
+ description: 'Documentation',
1023
+ iconType: 'Documentation',
1024
+ articles: [{
1025
+ id: 'intro',
1026
+ title: 'Intro',
1027
+ description: 'Introduction...',
1028
+ slug: 'intro',
1029
+ author: 'Documentation',
1030
+ updatedAt: '2024-06-02T00:00:00',
1031
+ categoryId: 'docs'
1032
+ }, {
1033
+ id: 'xstate',
1034
+ title: 'Xstate',
1035
+ description: 'Xstate...',
1036
+ slug: 'xstate',
1037
+ author: 'Documentation',
1038
+ updatedAt: '2024-06-02T00:00:00',
1039
+ categoryId: 'docs'
1040
+ }]
1041
+ },
1042
+ 'error-handler': {
1043
+ id: 'error-handler',
1044
+ title: 'Error Handler',
1045
+ description: 'Error Handling | Logging | Debugging',
1046
+ iconType: 'Documentation',
1047
+ articles: [{
1048
+ id: 'error-handler-application-error-handler',
1049
+ title: 'Application Error Handler',
1050
+ description: 'Application Error Handler...',
1051
+ slug: 'error-handler-application-error-handler',
1052
+ author: 'Documentation',
1053
+ updatedAt: '2024-06-02T00:00:00',
1054
+ categoryId: 'error-handler'
1055
+ }, {
1056
+ id: 'error-handler-error-handling',
1057
+ title: 'Error Handling',
1058
+ description: 'Error Handling...',
1059
+ slug: 'error-handler-error-handling',
1060
+ author: 'Documentation',
1061
+ updatedAt: '2024-06-02T00:00:00',
1062
+ categoryId: 'error-handler'
1063
+ }, {
1064
+ id: 'error-handler-index',
1065
+ title: 'Error handler',
1066
+ description: 'Error Handler...',
1067
+ slug: 'error-handler-index',
1068
+ author: 'Documentation',
1069
+ updatedAt: '2024-06-02T00:00:00',
1070
+ categoryId: 'error-handler'
1071
+ }, {
1072
+ id: 'error-handler-logging-errors',
1073
+ title: 'Logging Errors',
1074
+ description: 'Logins Errors...',
1075
+ slug: 'error-handler-logging-errors',
1076
+ author: 'Documentation',
1077
+ updatedAt: '2024-06-02T00:00:00',
1078
+ categoryId: 'error-handler'
1079
+ }]
1080
+ },
1081
+ 'feature-api': {
1082
+ id: 'feature-api',
1083
+ title: 'Feature API',
1084
+ description: 'Feature API | Browser | Mobile | Server',
1085
+ iconType: 'Api',
1086
+ articles: [{
1087
+ id: 'feature-api-copy-operation',
1088
+ title: 'Copy Operation',
1089
+ description: 'Copy Operation documentation.',
1090
+ slug: 'feature-api-copy-operation',
1091
+ author: 'Documentation',
1092
+ updatedAt: 'Recently',
1093
+ categoryId: 'feature-api'
1094
+ }, {
1095
+ id: 'feature-api-feature-browser-assets',
1096
+ title: 'Assets',
1097
+ description: 'Assets...',
1098
+ slug: 'feature-api-feature-browser-assets',
1099
+ author: 'Documentation',
1100
+ updatedAt: '2024-06-02T00:00:00',
1101
+ categoryId: 'feature-api'
1102
+ }, {
1103
+ id: 'feature-api-feature-browser-auth-permissions',
1104
+ title: 'Auth Permissions',
1105
+ description: 'Auth Permissions...',
1106
+ slug: 'feature-api-feature-browser-auth-permissions',
1107
+ author: 'Documentation',
1108
+ updatedAt: '2024-06-02T00:00:00',
1109
+ categoryId: 'feature-api'
1110
+ }, {
1111
+ id: 'feature-api-feature-browser-feature',
1112
+ title: 'Feature',
1113
+ description: 'Feature Browser API...',
1114
+ slug: 'feature-api-feature-browser-feature',
1115
+ author: 'Documentation',
1116
+ updatedAt: '2024-06-02T00:00:00',
1117
+ categoryId: 'feature-api'
1118
+ }, {
1119
+ id: 'feature-api-feature-browser-index',
1120
+ title: 'Feature browser',
1121
+ description: 'Feature Browser...',
1122
+ slug: 'feature-api-feature-browser-index',
1123
+ author: 'Documentation',
1124
+ updatedAt: '2024-06-02T00:00:00',
1125
+ categoryId: 'feature-api'
1126
+ }, {
1127
+ id: 'feature-api-feature-browser-routes-menu',
1128
+ title: 'Routes Menu',
1129
+ description: 'Routes and Menus...',
1130
+ slug: 'feature-api-feature-browser-routes-menu',
1131
+ author: 'Documentation',
1132
+ updatedAt: '2024-06-02T00:00:00',
1133
+ categoryId: 'feature-api'
1134
+ }, {
1135
+ id: 'feature-api-feature-browser-routing-convention',
1136
+ title: 'Routing Convention',
1137
+ description: 'Routing Convention...',
1138
+ slug: 'feature-api-feature-browser-routing-convention',
1139
+ author: 'Documentation',
1140
+ updatedAt: '2024-06-02T00:00:00',
1141
+ categoryId: 'feature-api'
1142
+ }, {
1143
+ id: 'feature-api-feature-browser-routing',
1144
+ title: 'Routing',
1145
+ description: 'Routing...',
1146
+ slug: 'feature-api-feature-browser-routing',
1147
+ author: 'Documentation',
1148
+ updatedAt: '2024-06-02T00:00:00',
1149
+ categoryId: 'feature-api'
1150
+ }, {
1151
+ id: 'feature-api-feature-mobile-auth-permissions',
1152
+ title: 'Auth Permissions',
1153
+ description: 'Auth and Permissions...',
1154
+ slug: 'feature-api-feature-mobile-auth-permissions',
1155
+ author: 'Documentation',
1156
+ updatedAt: '2024-06-02T00:00:00',
1157
+ categoryId: 'feature-api'
1158
+ }, {
1159
+ id: 'feature-api-feature-mobile-feature',
1160
+ title: 'Feature',
1161
+ description: 'Feature Mobile API...',
1162
+ slug: 'feature-api-feature-mobile-feature',
1163
+ author: 'Documentation',
1164
+ updatedAt: '2024-06-02T00:00:00',
1165
+ categoryId: 'feature-api'
1166
+ }, {
1167
+ id: 'feature-api-feature-mobile-index',
1168
+ title: 'Feature mobile',
1169
+ description: 'Feature Mobile...',
1170
+ slug: 'feature-api-feature-mobile-index',
1171
+ author: 'Documentation',
1172
+ updatedAt: '2024-06-02T00:00:00',
1173
+ categoryId: 'feature-api'
1174
+ }, {
1175
+ id: 'feature-api-feature-mobile-navigation',
1176
+ title: 'Navigation',
1177
+ description: 'Navigation...',
1178
+ slug: 'feature-api-feature-mobile-navigation',
1179
+ author: 'Documentation',
1180
+ updatedAt: '2024-06-02T00:00:00',
1181
+ categoryId: 'feature-api'
1182
+ }, {
1183
+ id: 'feature-api-feature-server-scheduling',
1184
+ title: 'Scheduling',
1185
+ description: 'Scheduling / Cron Jobs...',
1186
+ slug: 'feature-api-feature-server-scheduling',
1187
+ author: 'Documentation',
1188
+ updatedAt: '2024-06-02T00:00:00',
1189
+ categoryId: 'feature-api'
1190
+ }, {
1191
+ id: 'feature-api-feature-server-dataloader',
1192
+ title: 'Dataloader',
1193
+ description: 'Dataloader...',
1194
+ slug: 'feature-api-feature-server-dataloader',
1195
+ author: 'Documentation',
1196
+ updatedAt: '2024-06-02T00:00:00',
1197
+ categoryId: 'feature-api'
1198
+ }, {
1199
+ id: 'feature-api-feature-server-dependency-injection',
1200
+ title: 'Dependency Injection',
1201
+ description: 'Dependency Injection...',
1202
+ slug: 'feature-api-feature-server-dependency-injection',
1203
+ author: 'Documentation',
1204
+ updatedAt: '2024-06-02T00:00:00',
1205
+ categoryId: 'feature-api'
1206
+ }, {
1207
+ id: 'feature-api-feature-server-feature',
1208
+ title: 'Feature',
1209
+ description: 'Feature Server API...',
1210
+ slug: 'feature-api-feature-server-feature',
1211
+ author: 'Documentation',
1212
+ updatedAt: '2024-06-02T00:00:00',
1213
+ categoryId: 'feature-api'
1214
+ }, {
1215
+ id: 'feature-api-feature-server-generic-dataloader',
1216
+ title: 'Generic Dataloader',
1217
+ description: 'Using DataLoader in Common Stack...',
1218
+ slug: 'feature-api-feature-server-generic-dataloader',
1219
+ author: 'Documentation',
1220
+ updatedAt: '2024-06-02T00:00:00',
1221
+ categoryId: 'feature-api'
1222
+ }, {
1223
+ id: 'feature-api-feature-server-index',
1224
+ title: 'Feature server',
1225
+ description: 'Feature Server...',
1226
+ slug: 'feature-api-feature-server-index',
1227
+ author: 'Documentation',
1228
+ updatedAt: '2024-06-02T00:00:00',
1229
+ categoryId: 'feature-api'
1230
+ }, {
1231
+ id: 'feature-api-feature-server-migration',
1232
+ title: 'Migration',
1233
+ description: 'Migration...',
1234
+ slug: 'feature-api-feature-server-migration',
1235
+ author: 'Documentation',
1236
+ updatedAt: '2024-06-02T00:00:00',
1237
+ categoryId: 'feature-api'
1238
+ }, {
1239
+ id: 'feature-api-feature-server-mongo-model',
1240
+ title: 'Mongo Model',
1241
+ description: 'Mongo Model...',
1242
+ slug: 'feature-api-feature-server-mongo-model',
1243
+ author: 'Documentation',
1244
+ updatedAt: '2024-06-02T00:00:00',
1245
+ categoryId: 'feature-api'
1246
+ }, {
1247
+ id: 'feature-api-feature-server-permissions',
1248
+ title: 'Permissions',
1249
+ description: 'Permissions...',
1250
+ slug: 'feature-api-feature-server-permissions',
1251
+ author: 'Documentation',
1252
+ updatedAt: '2024-06-02T00:00:00',
1253
+ categoryId: 'feature-api'
1254
+ }, {
1255
+ id: 'feature-api-feature-server-policies',
1256
+ title: 'Policies',
1257
+ description: 'Policies...',
1258
+ slug: 'feature-api-feature-server-policies',
1259
+ author: 'Documentation',
1260
+ updatedAt: '2024-06-02T00:00:00',
1261
+ categoryId: 'feature-api'
1262
+ }, {
1263
+ id: 'feature-api-feature-server-preferences',
1264
+ title: 'Preferences',
1265
+ description: 'Preferences...',
1266
+ slug: 'feature-api-feature-server-preferences',
1267
+ author: 'Documentation',
1268
+ updatedAt: '2024-06-02T00:00:00',
1269
+ categoryId: 'feature-api'
1270
+ }, {
1271
+ id: 'feature-api-feature-server-repositories',
1272
+ title: 'Repositories',
1273
+ description: 'Repositories...',
1274
+ slug: 'feature-api-feature-server-repositories',
1275
+ author: 'Documentation',
1276
+ updatedAt: '2024-06-02T00:00:00',
1277
+ categoryId: 'feature-api'
1278
+ }, {
1279
+ id: 'feature-api-feature-server-resolvers',
1280
+ title: 'Resolvers',
1281
+ description: 'Resolvers...',
1282
+ slug: 'feature-api-feature-server-resolvers',
1283
+ author: 'Documentation',
1284
+ updatedAt: '2024-06-02T00:00:00',
1285
+ categoryId: 'feature-api'
1286
+ }, {
1287
+ id: 'feature-api-feature-server-rules',
1288
+ title: 'Rules',
1289
+ description: 'Rules...',
1290
+ slug: 'feature-api-feature-server-rules',
1291
+ author: 'Documentation',
1292
+ updatedAt: '2024-06-02T00:00:00',
1293
+ categoryId: 'feature-api'
1294
+ }, {
1295
+ id: 'feature-api-feature-server-schema',
1296
+ title: 'Schema',
1297
+ description: 'Schema...',
1298
+ slug: 'feature-api-feature-server-schema',
1299
+ author: 'Documentation',
1300
+ updatedAt: '2024-06-02T00:00:00',
1301
+ categoryId: 'feature-api'
1302
+ }, {
1303
+ id: 'feature-api-feature-server-services',
1304
+ title: 'Services',
1305
+ description: 'Service...',
1306
+ slug: 'feature-api-feature-server-services',
1307
+ author: 'Documentation',
1308
+ updatedAt: '2024-06-02T00:00:00',
1309
+ categoryId: 'feature-api'
1310
+ }, {
1311
+ id: 'feature-api-feature-server-setup-resource-crud',
1312
+ title: 'Setup Resource Crud',
1313
+ description: 'Setup Resource CRUD...',
1314
+ slug: 'feature-api-feature-server-setup-resource-crud',
1315
+ author: 'Documentation',
1316
+ updatedAt: '2024-06-02T00:00:00',
1317
+ categoryId: 'feature-api'
1318
+ }, {
1319
+ id: 'feature-api-index',
1320
+ title: 'Feature api',
1321
+ description: 'Feature API...',
1322
+ slug: 'feature-api-index',
1323
+ author: 'Documentation',
1324
+ updatedAt: '2024-06-02T00:00:00',
1325
+ categoryId: 'feature-api'
1326
+ }]
1327
+ },
1328
+ generators: {
1329
+ id: 'generators',
1330
+ title: 'Generators',
1331
+ description: 'Code Generators | Project Generators',
1332
+ iconType: 'Documentation',
1333
+ articles: [{
1334
+ id: 'generators-project-generate-fullproject',
1335
+ title: 'Generate Fullproject',
1336
+ description: 'Generate Full Project...',
1337
+ slug: 'generators-project-generate-fullproject',
1338
+ author: 'Documentation',
1339
+ updatedAt: '2024-06-02T00:00:00',
1340
+ categoryId: 'generators'
1341
+ }]
1342
+ },
1343
+ graphql: {
1344
+ id: 'graphql',
1345
+ title: 'GraphQL',
1346
+ description: 'GraphQL | Apollo Client | Scalars',
1347
+ iconType: 'Api',
1348
+ articles: [{
1349
+ id: 'graphql-apolloclient-mutation',
1350
+ title: 'ApolloClient Mutation',
1351
+ description: 'Apollo Client Mutation...',
1352
+ slug: 'graphql-apolloclient-mutation',
1353
+ author: 'Documentation',
1354
+ updatedAt: '2024-06-02T00:00:00',
1355
+ categoryId: 'graphql'
1356
+ }, {
1357
+ id: 'graphql-index',
1358
+ title: 'Graphql',
1359
+ description: 'Graphql...',
1360
+ slug: 'graphql-index',
1361
+ author: 'Documentation',
1362
+ updatedAt: '2024-06-02T00:00:00',
1363
+ categoryId: 'graphql'
1364
+ }, {
1365
+ id: 'graphql-scalars',
1366
+ title: 'Scalars',
1367
+ description: 'Scalars...',
1368
+ slug: 'graphql-scalars',
1369
+ author: 'Documentation',
1370
+ updatedAt: '2024-06-02T00:00:00',
1371
+ categoryId: 'graphql'
1372
+ }]
1373
+ },
1374
+ help: {
1375
+ id: 'help',
1376
+ title: 'Help',
1377
+ description: 'Help Center | Getting Started',
1378
+ iconType: 'Documentation',
1379
+ articles: [{
1380
+ id: 'help-index',
1381
+ title: 'Help',
1382
+ description: 'Help...',
1383
+ slug: 'help-index',
1384
+ author: 'Documentation',
1385
+ updatedAt: '2024-06-02T00:00:00',
1386
+ categoryId: 'help'
1387
+ }, {
1388
+ id: 'help-intro',
1389
+ title: 'Intro',
1390
+ description: 'Welcome...',
1391
+ slug: 'help-intro',
1392
+ author: 'Documentation',
1393
+ updatedAt: '2024-06-02T00:00:00',
1394
+ categoryId: 'help'
1395
+ }]
1396
+ },
1397
+ intl: {
1398
+ id: 'intl',
1399
+ title: 'Internationalization',
1400
+ description: 'i18n | Localization | Translations',
1401
+ iconType: 'Documentation',
1402
+ articles: [{
1403
+ id: 'intl-ant-design-menu-translation',
1404
+ title: 'Ant Design Menu Translation',
1405
+ description: 'Ant Design Menu Translation...',
1406
+ slug: 'intl-ant-design-menu-translation',
1407
+ author: 'Documentation',
1408
+ updatedAt: '2024-06-02T00:00:00',
1409
+ categoryId: 'intl'
1410
+ }, {
1411
+ id: 'intl-intl-namespace',
1412
+ title: 'Intl Namespace',
1413
+ description: 'Translations Namespaces...',
1414
+ slug: 'intl-intl-namespace',
1415
+ author: 'Documentation',
1416
+ updatedAt: '2024-06-02T00:00:00',
1417
+ categoryId: 'intl'
1418
+ }, {
1419
+ id: 'intl-vite-plugin-intl',
1420
+ title: 'Vite Plugin Intl',
1421
+ description: 'Internationalization...',
1422
+ slug: 'intl-vite-plugin-intl',
1423
+ author: 'Documentation',
1424
+ updatedAt: '2024-06-02T00:00:00',
1425
+ categoryId: 'intl'
1426
+ }, {
1427
+ id: 'intl-webpack-plugin-intl',
1428
+ title: 'Webpack Plugin Intl',
1429
+ description: 'Webpack Plugin Intl...',
1430
+ slug: 'intl-webpack-plugin-intl',
1431
+ author: 'Documentation',
1432
+ updatedAt: '2024-06-02T00:00:00',
1433
+ categoryId: 'intl'
1434
+ }]
1435
+ },
1436
+ knowledge: {
1437
+ id: 'knowledge',
1438
+ title: 'Knowledge Base',
1439
+ description: 'Knowledge Base | Tutorials',
1440
+ iconType: 'Documentation',
1441
+ articles: [{
1442
+ id: 'knowledge-basic-fullstack',
1443
+ title: 'Basic Fullstack',
1444
+ description: 'Basic Fullstack documentation.',
1445
+ slug: 'knowledge-basic-fullstack',
1446
+ author: 'Documentation',
1447
+ updatedAt: 'Recently',
1448
+ categoryId: 'knowledge'
1449
+ }]
1450
+ },
1451
+ llm: {
1452
+ id: 'llm',
1453
+ title: 'LLM Guides',
1454
+ description: 'LLM Development Guides | AI Integration',
1455
+ iconType: 'Documentation',
1456
+ articles: [{
1457
+ id: 'llm-logger.llm',
1458
+ title: 'Logger.Llm',
1459
+ description: 'Logger.Llm documentation.',
1460
+ slug: 'llm-logger.llm',
1461
+ author: 'Documentation',
1462
+ updatedAt: 'Recently',
1463
+ categoryId: 'llm'
1464
+ }, {
1465
+ id: 'llm-backend-proxies-services-llm',
1466
+ title: 'Backend Proxies Services Llm',
1467
+ description: 'Backend Proxies Services Llm documentation.',
1468
+ slug: 'llm-backend-proxies-services-llm',
1469
+ author: 'Documentation',
1470
+ updatedAt: 'Recently',
1471
+ categoryId: 'llm'
1472
+ }, {
1473
+ id: 'llm-backend-service-llm',
1474
+ title: 'Backend Service Llm',
1475
+ description: 'Backend Service Llm documentation.',
1476
+ slug: 'llm-backend-service-llm',
1477
+ author: 'Documentation',
1478
+ updatedAt: 'Recently',
1479
+ categoryId: 'llm'
1480
+ }, {
1481
+ id: 'llm-db_migration_llm',
1482
+ title: 'Db_migration_llm',
1483
+ description: 'Db_migration_llm documentation.',
1484
+ slug: 'llm-db_migration_llm',
1485
+ author: 'Documentation',
1486
+ updatedAt: 'Recently',
1487
+ categoryId: 'llm'
1488
+ }, {
1489
+ id: 'llm-frontend-remix-15.3-upgrade-llm',
1490
+ title: 'REMIX 15.3 Upgrade Llm',
1491
+ description: 'REMIX 15.3 Upgrade Llm documentation.',
1492
+ slug: 'llm-frontend-remix-15.3-upgrade-llm',
1493
+ author: 'Documentation',
1494
+ updatedAt: 'Recently',
1495
+ categoryId: 'llm'
1496
+ }, {
1497
+ id: 'llm-inngest-inngest_function_development_guide_llm',
1498
+ title: 'INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM',
1499
+ description: 'INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM documentation.',
1500
+ slug: 'llm-inngest-inngest_function_development_guide_llm',
1501
+ author: 'Documentation',
1502
+ updatedAt: 'Recently',
1503
+ categoryId: 'llm'
1504
+ }, {
1505
+ id: 'llm-inngest-inngest_namespace_llm',
1506
+ title: 'INNGEST_NAMESPACE_LLM',
1507
+ description: 'INNGEST_NAMESPACE_LLM documentation.',
1508
+ slug: 'llm-inngest-inngest_namespace_llm',
1509
+ author: 'Documentation',
1510
+ updatedAt: 'Recently',
1511
+ categoryId: 'llm'
1512
+ }, {
1513
+ id: 'llm-llm_workflow_namespace',
1514
+ title: 'Llm_workflow_namespace',
1515
+ description: 'Llm_workflow_namespace documentation.',
1516
+ slug: 'llm-llm_workflow_namespace',
1517
+ author: 'Documentation',
1518
+ updatedAt: 'Recently',
1519
+ categoryId: 'llm'
1520
+ }, {
1521
+ id: 'llm-organization-components-form-llm',
1522
+ title: 'Organization Components Form Llm',
1523
+ description: 'Organization Components Form Llm documentation.',
1524
+ slug: 'llm-organization-components-form-llm',
1525
+ author: 'Documentation',
1526
+ updatedAt: 'Recently',
1527
+ categoryId: 'llm'
1528
+ }, {
1529
+ id: 'llm-page-component-llm',
1530
+ title: 'Page Component Llm',
1531
+ description: 'Page Component Llm documentation.',
1532
+ slug: 'llm-page-component-llm',
1533
+ author: 'Documentation',
1534
+ updatedAt: 'Recently',
1535
+ categoryId: 'llm'
1536
+ }, {
1537
+ id: 'llm-preferences-settings-llm',
1538
+ title: 'Preferences Settings Llm',
1539
+ description: 'Preferences Settings Llm documentation.',
1540
+ slug: 'llm-preferences-settings-llm',
1541
+ author: 'Documentation',
1542
+ updatedAt: 'Recently',
1543
+ categoryId: 'llm'
1544
+ }, {
1545
+ id: 'llm-tailwind-css-llm',
1546
+ title: 'Tailwind Css Llm',
1547
+ description: 'Tailwind Css Llm documentation.',
1548
+ slug: 'llm-tailwind-css-llm',
1549
+ author: 'Documentation',
1550
+ updatedAt: 'Recently',
1551
+ categoryId: 'llm'
1552
+ }]
1553
+ },
1554
+ mailing: {
1555
+ id: 'mailing',
1556
+ title: 'Mailing',
1557
+ description: 'Email Templates | Mailing Service',
1558
+ iconType: 'Documentation',
1559
+ articles: [{
1560
+ id: 'mailing-index',
1561
+ title: 'Mailing',
1562
+ description: 'Mailling...',
1563
+ slug: 'mailing-index',
1564
+ author: 'Documentation',
1565
+ updatedAt: '2024-06-02T00:00:00',
1566
+ categoryId: 'mailing'
1567
+ }, {
1568
+ id: 'mailing-mailing-template',
1569
+ title: 'Mailing Template',
1570
+ description: 'Mailing Template...',
1571
+ slug: 'mailing-mailing-template',
1572
+ author: 'Documentation',
1573
+ updatedAt: '2024-06-02T00:00:00',
1574
+ categoryId: 'mailing'
1575
+ }]
1576
+ },
1577
+ mobile: {
1578
+ id: 'mobile',
1579
+ title: 'Mobile',
1580
+ description: 'Mobile Development | React Native | Expo',
1581
+ iconType: 'Documentation',
1582
+ articles: [{
1583
+ id: 'mobile-app-navigation-generator',
1584
+ title: 'App Navigation Generator',
1585
+ description: 'App Navigation Generator...',
1586
+ slug: 'mobile-app-navigation-generator',
1587
+ author: 'Documentation',
1588
+ updatedAt: '2024-06-02T00:00:00',
1589
+ categoryId: 'mobile'
1590
+ }, {
1591
+ id: 'mobile-mobiletestcases',
1592
+ title: 'MobileTestCases',
1593
+ description: 'Mobile Test Cases...',
1594
+ slug: 'mobile-mobiletestcases',
1595
+ author: 'Documentation',
1596
+ updatedAt: '2024-06-02T00:00:00',
1597
+ categoryId: 'mobile'
1598
+ }, {
1599
+ id: 'mobile-eas-profile-build',
1600
+ title: 'Eas Profile Build',
1601
+ description: 'Eas Profile Build...',
1602
+ slug: 'mobile-eas-profile-build',
1603
+ author: 'Documentation',
1604
+ updatedAt: '2024-06-02T00:00:00',
1605
+ categoryId: 'mobile'
1606
+ }, {
1607
+ id: 'mobile-expo-push-notification-setup',
1608
+ title: 'Expo Push Notification Setup',
1609
+ description: 'Expo push notification setup...',
1610
+ slug: 'mobile-expo-push-notification-setup',
1611
+ author: 'Documentation',
1612
+ updatedAt: '2024-06-02T00:00:00',
1613
+ categoryId: 'mobile'
1614
+ }, {
1615
+ id: 'mobile-index',
1616
+ title: 'Mobile',
1617
+ description: 'Mobile...',
1618
+ slug: 'mobile-index',
1619
+ author: 'Documentation',
1620
+ updatedAt: '2024-06-02T00:00:00',
1621
+ categoryId: 'mobile'
1622
+ }, {
1623
+ id: 'mobile-routes',
1624
+ title: 'Routes',
1625
+ description: 'Routes...',
1626
+ slug: 'mobile-routes',
1627
+ author: 'Documentation',
1628
+ updatedAt: '2024-06-02T00:00:00',
1629
+ categoryId: 'mobile'
1630
+ }]
1631
+ },
1632
+ organization: {
1633
+ id: 'organization',
1634
+ title: 'Organization',
1635
+ description: 'Organization Management | Multi-tenancy',
1636
+ iconType: 'Documentation',
1637
+ articles: [{
1638
+ id: 'organization-adding-account-context',
1639
+ title: 'Adding Account Context',
1640
+ description: 'Adding Account Context...',
1641
+ slug: 'organization-adding-account-context',
1642
+ author: 'Documentation',
1643
+ updatedAt: '2024-06-02T00:00:00',
1644
+ categoryId: 'organization'
1645
+ }, {
1646
+ id: 'organization-adding-org-mobile-navigation',
1647
+ title: 'Adding Org Mobile Navigation',
1648
+ description: 'Org Mobile Navigation...',
1649
+ slug: 'organization-adding-org-mobile-navigation',
1650
+ author: 'Documentation',
1651
+ updatedAt: '2024-06-02T00:00:00',
1652
+ categoryId: 'organization'
1653
+ }, {
1654
+ id: 'organization-adding-org-web-navigation',
1655
+ title: 'Adding Org Web Navigation',
1656
+ description: 'Org Web Navigation...',
1657
+ slug: 'organization-adding-org-web-navigation',
1658
+ author: 'Documentation',
1659
+ updatedAt: '2024-06-02T00:00:00',
1660
+ categoryId: 'organization'
1661
+ }, {
1662
+ id: 'organization-index',
1663
+ title: 'Organization',
1664
+ description: 'Organization...',
1665
+ slug: 'organization-index',
1666
+ author: 'Documentation',
1667
+ updatedAt: '2024-06-02T00:00:00',
1668
+ categoryId: 'organization'
1669
+ }, {
1670
+ id: 'organization-initialization',
1671
+ title: 'Initialization',
1672
+ description: 'Initialization...',
1673
+ slug: 'organization-initialization',
1674
+ author: 'Documentation',
1675
+ updatedAt: '2024-06-02T00:00:00',
1676
+ categoryId: 'organization'
1677
+ }, {
1678
+ id: 'organization-organization-resource-vs-resource',
1679
+ title: 'Organization Resource Vs Resource',
1680
+ description: 'Organization Resources vs normal resources...',
1681
+ slug: 'organization-organization-resource-vs-resource',
1682
+ author: 'Documentation',
1683
+ updatedAt: '2024-06-02T00:00:00',
1684
+ categoryId: 'organization'
1685
+ }]
1686
+ },
1687
+ remix: {
1688
+ id: 'remix',
1689
+ title: 'Remix',
1690
+ description: 'Remix Framework | Routes | Loaders',
1691
+ iconType: 'Documentation',
1692
+ articles: [{
1693
+ id: 'remix-configuration-component-structure-best-practices',
1694
+ title: 'Component Structure Best Practices',
1695
+ description: 'Component Structure Best Practices...',
1696
+ slug: 'remix-configuration-component-structure-best-practices',
1697
+ author: 'Documentation',
1698
+ updatedAt: '2024-06-02T00:00:00',
1699
+ categoryId: 'remix'
1700
+ }, {
1701
+ id: 'remix-configuration-configurations',
1702
+ title: 'Configurations',
1703
+ description: 'Configurations...',
1704
+ slug: 'remix-configuration-configurations',
1705
+ author: 'Documentation',
1706
+ updatedAt: '2024-06-02T00:00:00',
1707
+ categoryId: 'remix'
1708
+ }, {
1709
+ id: 'remix-configuration-css-import-and-stylesheets',
1710
+ title: 'Css Import And Stylesheets',
1711
+ description: 'CSS Import and Stylesheet Links...',
1712
+ slug: 'remix-configuration-css-import-and-stylesheets',
1713
+ author: 'Documentation',
1714
+ updatedAt: '2024-06-02T00:00:00',
1715
+ categoryId: 'remix'
1716
+ }, {
1717
+ id: 'remix-configuration-dont-subcomponent-network',
1718
+ title: 'Dont Subcomponent Network',
1719
+ description: "Don't write network requests over the sub components....",
1720
+ slug: 'remix-configuration-dont-subcomponent-network',
1721
+ author: 'Documentation',
1722
+ updatedAt: '2024-06-02T00:00:00',
1723
+ categoryId: 'remix'
1724
+ }, {
1725
+ id: 'remix-configuration-generated-data-loaders',
1726
+ title: 'Generated Data Loaders',
1727
+ description: 'Generated Data Loaders...',
1728
+ slug: 'remix-configuration-generated-data-loaders',
1729
+ author: 'Documentation',
1730
+ updatedAt: '2024-06-02T00:00:00',
1731
+ categoryId: 'remix'
1732
+ }, {
1733
+ id: 'remix-configuration-generated-resource-loaders',
1734
+ title: 'Generated Resource Loaders',
1735
+ description: 'Generated Resource Loaders...',
1736
+ slug: 'remix-configuration-generated-resource-loaders',
1737
+ author: 'Documentation',
1738
+ updatedAt: '2024-06-02T00:00:00',
1739
+ categoryId: 'remix'
1740
+ }, {
1741
+ id: 'remix-configuration-query-params-generator',
1742
+ title: 'Query Params Generator',
1743
+ description: 'Query Params Generator...',
1744
+ slug: 'remix-configuration-query-params-generator',
1745
+ author: 'Documentation',
1746
+ updatedAt: '2024-06-02T00:00:00',
1747
+ categoryId: 'remix'
1748
+ }, {
1749
+ id: 'remix-configuration-routes-extra-icons',
1750
+ title: 'Routes Extra Icons',
1751
+ description: 'Icon System Documentation...',
1752
+ slug: 'remix-configuration-routes-extra-icons',
1753
+ author: 'Documentation',
1754
+ updatedAt: '2024-06-02T00:00:00',
1755
+ categoryId: 'remix'
1756
+ }, {
1757
+ id: 'remix-configuration-routes-json-advanced',
1758
+ title: 'Routes Json Advanced',
1759
+ description: 'Advanced Configurations in routes.json...',
1760
+ slug: 'remix-configuration-routes-json-advanced',
1761
+ author: 'Documentation',
1762
+ updatedAt: '2024-06-02T00:00:00',
1763
+ categoryId: 'remix'
1764
+ }, {
1765
+ id: 'remix-configuration-routes-json-auth',
1766
+ title: 'Routes Json Auth',
1767
+ description: 'Authentication and Authorization in routes.json...',
1768
+ slug: 'remix-configuration-routes-json-auth',
1769
+ author: 'Documentation',
1770
+ updatedAt: '2024-06-02T00:00:00',
1771
+ categoryId: 'remix'
1772
+ }, {
1773
+ id: 'remix-configuration-routes-json-best-practices',
1774
+ title: 'Routes Json Best Practices',
1775
+ description: 'Best Practices and Tips for routes.json...',
1776
+ slug: 'remix-configuration-routes-json-best-practices',
1777
+ author: 'Documentation',
1778
+ updatedAt: '2024-06-02T00:00:00',
1779
+ categoryId: 'remix'
1780
+ }, {
1781
+ id: 'remix-configuration-routes-json-fields',
1782
+ title: 'Routes Json Fields',
1783
+ description: 'routes.json Field Descriptions...',
1784
+ slug: 'remix-configuration-routes-json-fields',
1785
+ author: 'Documentation',
1786
+ updatedAt: '2024-06-02T00:00:00',
1787
+ categoryId: 'remix'
1788
+ }, {
1789
+ id: 'remix-configuration-routes-json-graphql',
1790
+ title: 'Routes Json Graphql',
1791
+ description: 'GraphQL Integration in routes.json...',
1792
+ slug: 'remix-configuration-routes-json-graphql',
1793
+ author: 'Documentation',
1794
+ updatedAt: '2024-06-02T00:00:00',
1795
+ categoryId: 'remix'
1796
+ }, {
1797
+ id: 'remix-configuration-routes-json-index',
1798
+ title: 'Routes Json Index',
1799
+ description: 'routes.json and Related Concepts Documentation...',
1800
+ slug: 'remix-configuration-routes-json-index',
1801
+ author: 'Documentation',
1802
+ updatedAt: '2024-06-02T00:00:00',
1803
+ categoryId: 'remix'
1804
+ }, {
1805
+ id: 'remix-configuration-routes-json-loaders',
1806
+ title: 'Routes Json Loaders',
1807
+ description: 'Loaders and Data Fetching in routes.json...',
1808
+ slug: 'remix-configuration-routes-json-loaders',
1809
+ author: 'Documentation',
1810
+ updatedAt: '2024-06-02T00:00:00',
1811
+ categoryId: 'remix'
1812
+ }, {
1813
+ id: 'remix-configuration-routes-json-middleware',
1814
+ title: 'Routes Json Middleware',
1815
+ description: 'Middleware Configuration in routes.json...',
1816
+ slug: 'remix-configuration-routes-json-middleware',
1817
+ author: 'Documentation',
1818
+ updatedAt: '2024-06-02T00:00:00',
1819
+ categoryId: 'remix'
1820
+ }, {
1821
+ id: 'remix-configuration-routes-json-overview',
1822
+ title: 'Routes Json Overview',
1823
+ description: 'routes.json Overview...',
1824
+ slug: 'remix-configuration-routes-json-overview',
1825
+ author: 'Documentation',
1826
+ updatedAt: '2024-06-02T00:00:00',
1827
+ categoryId: 'remix'
1828
+ }, {
1829
+ id: 'remix-data-loaders',
1830
+ title: 'Data Loaders',
1831
+ description: 'Data Loaders...',
1832
+ slug: 'remix-data-loaders',
1833
+ author: 'Documentation',
1834
+ updatedAt: '2024-06-02T00:00:00',
1835
+ categoryId: 'remix'
1836
+ }, {
1837
+ id: 'remix-devtools-remix-devtools',
1838
+ title: 'Remix Devtools',
1839
+ description: 'Remix Development Tools...',
1840
+ slug: 'remix-devtools-remix-devtools',
1841
+ author: 'Documentation',
1842
+ updatedAt: '2024-06-02T00:00:00',
1843
+ categoryId: 'remix'
1844
+ }, {
1845
+ id: 'remix-examples-changes-using-servercode',
1846
+ title: 'Changes Using Servercode',
1847
+ description: 'Changes Using Server Code...',
1848
+ slug: 'remix-examples-changes-using-servercode',
1849
+ author: 'Documentation',
1850
+ updatedAt: '2024-06-02T00:00:00',
1851
+ categoryId: 'remix'
1852
+ }, {
1853
+ id: 'remix-extra-icons',
1854
+ title: 'Extra Icons',
1855
+ description: 'Extra Icons...',
1856
+ slug: 'remix-extra-icons',
1857
+ author: 'Documentation',
1858
+ updatedAt: '2024-06-02T00:00:00',
1859
+ categoryId: 'remix'
1860
+ }, {
1861
+ id: 'remix-extra-links',
1862
+ title: 'Extra Links',
1863
+ description: 'Extra Links...',
1864
+ slug: 'remix-extra-links',
1865
+ author: 'Documentation',
1866
+ updatedAt: '2024-06-02T00:00:00',
1867
+ categoryId: 'remix'
1868
+ }, {
1869
+ id: 'remix-generated-data-loaders',
1870
+ title: 'Generated Data Loaders',
1871
+ description: 'Generated Data Loaders...',
1872
+ slug: 'remix-generated-data-loaders',
1873
+ author: 'Documentation',
1874
+ updatedAt: '2024-06-02T00:00:00',
1875
+ categoryId: 'remix'
1876
+ }, {
1877
+ id: 'remix-queryparamsgenerator',
1878
+ title: 'QueryParamsGenerator',
1879
+ description: 'Query Params Generator...',
1880
+ slug: 'remix-queryparamsgenerator',
1881
+ author: 'Documentation',
1882
+ updatedAt: '2024-06-02T00:00:00',
1883
+ categoryId: 'remix'
1884
+ }, {
1885
+ id: 'remix-resources',
1886
+ title: 'Resources',
1887
+ description: 'Resources...',
1888
+ slug: 'remix-resources',
1889
+ author: 'Documentation',
1890
+ updatedAt: '2024-06-02T00:00:00',
1891
+ categoryId: 'remix'
1892
+ }, {
1893
+ id: 'remix-styles',
1894
+ title: 'Styles',
1895
+ description: 'Styles...',
1896
+ slug: 'remix-styles',
1897
+ author: 'Documentation',
1898
+ updatedAt: '2024-06-02T00:00:00',
1899
+ categoryId: 'remix'
1900
+ }, {
1901
+ id: 'remix-wiki',
1902
+ title: 'Wiki',
1903
+ description: 'Wiki...',
1904
+ slug: 'remix-wiki',
1905
+ author: 'Documentation',
1906
+ updatedAt: '2024-06-02T00:00:00',
1907
+ categoryId: 'remix'
1908
+ }]
1909
+ },
1910
+ security: {
1911
+ id: 'security',
1912
+ title: 'Security',
1913
+ description: 'Security | Authentication | Authorization',
1914
+ iconType: 'Documentation',
1915
+ articles: [{
1916
+ id: 'security-auth-wrapper-auth-wrapper',
1917
+ title: 'Auth Wrapper',
1918
+ description: 'Auth Wrapper...',
1919
+ slug: 'security-auth-wrapper-auth-wrapper',
1920
+ author: 'Documentation',
1921
+ updatedAt: '2024-06-02T00:00:00',
1922
+ categoryId: 'security'
1923
+ }, {
1924
+ id: 'security-index',
1925
+ title: 'Security',
1926
+ description: 'Security...',
1927
+ slug: 'security-index',
1928
+ author: 'Documentation',
1929
+ updatedAt: '2024-06-02T00:00:00',
1930
+ categoryId: 'security'
1931
+ }, {
1932
+ id: 'security-secure-button-mobilenative',
1933
+ title: 'Secure Button Mobilenative',
1934
+ description: 'Secure Button Mobile...',
1935
+ slug: 'security-secure-button-mobilenative',
1936
+ author: 'Documentation',
1937
+ updatedAt: '2024-06-02T00:00:00',
1938
+ categoryId: 'security'
1939
+ }, {
1940
+ id: 'security-secure-button-web',
1941
+ title: 'Secure Button Web',
1942
+ description: 'Secure Button Web...',
1943
+ slug: 'security-secure-button-web',
1944
+ author: 'Documentation',
1945
+ updatedAt: '2024-06-02T00:00:00',
1946
+ categoryId: 'security'
1947
+ }]
1948
+ },
1949
+ 'server-side': {
1950
+ id: 'server-side',
1951
+ title: 'Server Side',
1952
+ description: 'Backend | Server Architecture | Services',
1953
+ iconType: 'Documentation',
1954
+ articles: [{
1955
+ id: 'server-side-account-customization',
1956
+ title: 'Account Customization',
1957
+ description: 'Account Customization...',
1958
+ slug: 'server-side-account-customization',
1959
+ author: 'Documentation',
1960
+ updatedAt: '2024-06-02T00:00:00',
1961
+ categoryId: 'server-side'
1962
+ }, {
1963
+ id: 'server-side-apollo-caching',
1964
+ title: 'Caching',
1965
+ description: 'Caching with Apollo Server...',
1966
+ slug: 'server-side-apollo-caching',
1967
+ author: 'Documentation',
1968
+ updatedAt: '2024-06-02T00:00:00',
1969
+ categoryId: 'server-side'
1970
+ }, {
1971
+ id: 'server-side-backend-architecture-final-decision',
1972
+ title: 'FINAL DECISION',
1973
+ description: 'FINAL DECISION documentation.',
1974
+ slug: 'server-side-backend-architecture-final-decision',
1975
+ author: 'Documentation',
1976
+ updatedAt: 'Recently',
1977
+ categoryId: 'server-side'
1978
+ }, {
1979
+ id: 'server-side-backend-architecture-true-final-architecture',
1980
+ title: 'TRUE FINAL ARCHITECTURE',
1981
+ description: 'TRUE FINAL ARCHITECTURE documentation.',
1982
+ slug: 'server-side-backend-architecture-true-final-architecture',
1983
+ author: 'Documentation',
1984
+ updatedAt: 'Recently',
1985
+ categoryId: 'server-side'
1986
+ }, {
1987
+ id: 'server-side-backend-architecture-index1',
1988
+ title: 'Index1',
1989
+ description: 'Index1 documentation.',
1990
+ slug: 'server-side-backend-architecture-index1',
1991
+ author: 'Documentation',
1992
+ updatedAt: 'Recently',
1993
+ categoryId: 'server-side'
1994
+ }, {
1995
+ id: 'server-side-backend-coding',
1996
+ title: 'Backend Coding',
1997
+ description: 'Backend Coding documentation.',
1998
+ slug: 'server-side-backend-coding',
1999
+ author: 'Documentation',
2000
+ updatedAt: 'Recently',
2001
+ categoryId: 'server-side'
2002
+ }, {
2003
+ id: 'server-side-e2b-manageing-template',
2004
+ title: 'Manageing Template',
2005
+ description: 'Manageing Template documentation.',
2006
+ slug: 'server-side-e2b-manageing-template',
2007
+ author: 'Documentation',
2008
+ updatedAt: 'Recently',
2009
+ categoryId: 'server-side'
2010
+ }, {
2011
+ id: 'server-side-index',
2012
+ title: 'Server side',
2013
+ description: 'Server Side...',
2014
+ slug: 'server-side-index',
2015
+ author: 'Documentation',
2016
+ updatedAt: '2024-06-02T00:00:00',
2017
+ categoryId: 'server-side'
2018
+ }, {
2019
+ id: 'server-side-inngest-functions-module',
2020
+ title: 'Inngest Functions Module',
2021
+ description: 'Inngest Functions Module documentation.',
2022
+ slug: 'server-side-inngest-functions-module',
2023
+ author: 'Documentation',
2024
+ updatedAt: 'Recently',
2025
+ categoryId: 'server-side'
2026
+ }, {
2027
+ id: 'server-side-listen-stripe-events',
2028
+ title: 'Listen Stripe Events',
2029
+ description: 'Listen Stripe Events...',
2030
+ slug: 'server-side-listen-stripe-events',
2031
+ author: 'Documentation',
2032
+ updatedAt: '2024-06-02T00:00:00',
2033
+ categoryId: 'server-side'
2034
+ }, {
2035
+ id: 'server-side-slug-service',
2036
+ title: 'Slug Service',
2037
+ description: 'Slug Service documentation.',
2038
+ slug: 'server-side-slug-service',
2039
+ author: 'Documentation',
2040
+ updatedAt: 'Recently',
2041
+ categoryId: 'server-side'
2042
+ }]
2043
+ },
2044
+ tests: {
2045
+ id: 'tests',
2046
+ title: 'Tests',
2047
+ description: 'Testing | Jest | Test Setup',
2048
+ iconType: 'Documentation',
2049
+ articles: [{
2050
+ id: 'tests-index',
2051
+ title: 'Tests',
2052
+ description: 'Tests...',
2053
+ slug: 'tests-index',
2054
+ author: 'Documentation',
2055
+ updatedAt: '2024-06-02T00:00:00',
2056
+ categoryId: 'tests'
2057
+ }, {
2058
+ id: 'tests-jest-test-debug-vscode',
2059
+ title: 'Jest Test Debug Vscode',
2060
+ description: 'Jest Test Debug...',
2061
+ slug: 'tests-jest-test-debug-vscode',
2062
+ author: 'Documentation',
2063
+ updatedAt: '2024-06-02T00:00:00',
2064
+ categoryId: 'tests'
2065
+ }, {
2066
+ id: 'tests-known-errors',
2067
+ title: 'Known Errors',
2068
+ description: 'Known Errors...',
2069
+ slug: 'tests-known-errors',
2070
+ author: 'Documentation',
2071
+ updatedAt: '2024-06-02T00:00:00',
2072
+ categoryId: 'tests'
2073
+ }, {
2074
+ id: 'tests-service-test-template',
2075
+ title: 'Service Test Template',
2076
+ description: 'Service Test Template...',
2077
+ slug: 'tests-service-test-template',
2078
+ author: 'Documentation',
2079
+ updatedAt: '2024-06-02T00:00:00',
2080
+ categoryId: 'tests'
2081
+ }, {
2082
+ id: 'tests-test-setup',
2083
+ title: 'Test Setup',
2084
+ description: 'Test Setup...',
2085
+ slug: 'tests-test-setup',
2086
+ author: 'Documentation',
2087
+ updatedAt: '2024-06-02T00:00:00',
2088
+ categoryId: 'tests'
2089
+ }]
2090
+ },
2091
+ ui: {
2092
+ id: 'ui',
2093
+ title: 'UI Components',
2094
+ description: 'UI Components | Schema Based UI',
2095
+ iconType: 'Documentation',
2096
+ articles: [{
2097
+ id: 'ui-schemabasedui',
2098
+ title: 'SchemaBasedUI',
2099
+ description: 'Schema Based UI Forms...',
2100
+ slug: 'ui-schemabasedui',
2101
+ author: 'Documentation',
2102
+ updatedAt: '2024-06-02T00:00:00',
2103
+ categoryId: 'ui'
2104
+ }, {
2105
+ id: 'ui-slotfillcomponent',
2106
+ title: 'SlotFillComponent',
2107
+ description: 'SlotFillComponent documentation.',
2108
+ slug: 'ui-slotfillcomponent',
2109
+ author: 'Documentation',
2110
+ updatedAt: 'Recently',
2111
+ categoryId: 'ui'
2112
+ }]
2113
+ }
2114
+ };
2115
+ // Process categories to include full article content and HTML
2116
+ const processedCategories = Object.values(categoryMetadata).map(category => ({
2117
+ ...category,
2118
+ articles: category.articles.map(articleMeta => {
2119
+ // For now, we'll use a placeholder content since loadMarkdownContent is async
2120
+ // In a real implementation, you would need to handle this differently
2121
+ const rawContent = `<!-- Content for ${articleMeta.id} -->`;
2122
+ const htmlContent = marked.parse(rawContent);
2123
+ const headings = extractHeadings(rawContent);
2124
+ return {
2125
+ ...articleMeta,
2126
+ content: rawContent,
2127
+ htmlContent: htmlContent,
2128
+ headings: headings
2129
+ };
2130
+ })
2131
+ }));
2132
+ // Helper functions
2133
+ const getAllCategoriesMetadata = () => {
2134
+ return processedCategories;
2135
+ };
2136
+ const getCategoryById = categoryId => {
2137
+ return processedCategories.find(cat => cat.id === categoryId) || null;
2138
+ };
2139
+ const getArticleBySlug = articleSlug => {
2140
+ for (const category of processedCategories) {
2141
+ const article = category.articles.find(art => art.slug === articleSlug);
2142
+ if (article) return article;
2143
+ }
2144
+ return null;
2145
+ };
2146
+ // Function to parse frontmatter from markdown content
2147
+ function parseFrontmatter(content) {
2148
+ const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---\s*\n([\s\S]*)$/;
2149
+ const match = content.match(frontmatterRegex);
2150
+ if (!match) {
2151
+ return {
2152
+ frontmatter: {},
2153
+ body: content
2154
+ };
2155
+ }
2156
+ const frontmatterText = match[1];
2157
+ const body = match[2];
2158
+ const frontmatter = {};
2159
+ frontmatterText.split('\n').forEach(line => {
2160
+ const colonIndex = line.indexOf(':');
2161
+ if (colonIndex > 0) {
2162
+ const key = line.substring(0, colonIndex).trim();
2163
+ let value = line.substring(colonIndex + 1).trim();
2164
+ // Remove quotes if present
2165
+ if (typeof value === 'string' && (value.startsWith('"') && value.endsWith('"') || value.startsWith("'") && value.endsWith("'"))) {
2166
+ value = value.slice(1, -1);
2167
+ }
2168
+ // Parse array values
2169
+ if (typeof value === 'string' && value.startsWith('[') && value.endsWith(']')) {
2170
+ value = value.slice(1, -1).split(',').map(item => item.trim().replace(/^["']|["']$/g, ''));
2171
+ }
2172
+ frontmatter[key] = value;
2173
+ }
2174
+ });
2175
+ return {
2176
+ frontmatter,
2177
+ body
2178
+ };
2179
+ }
2180
+ // Function to load article content dynamically (for help center articles)
2181
+ const loadArticleContent = async articleSlug => {
2182
+ const article = getArticleBySlug(articleSlug);
2183
+ if (!article) return null;
2184
+ // Load the actual markdown content
2185
+ const contentId = article.id;
2186
+ const rawContent = await loadMarkdownContent(contentId);
2187
+ const {
2188
+ frontmatter,
2189
+ body
2190
+ } = parseFrontmatter(rawContent);
2191
+ const markdownBody = body || rawContent;
2192
+ const htmlContent = marked.parse(markdownBody);
2193
+ const headings = extractHeadings(markdownBody);
2194
+ return {
2195
+ ...article,
2196
+ // If metadata disagrees, prefer the markdown frontmatter (but never render it in the body)
2197
+ title: frontmatter.title || article.title,
2198
+ description: frontmatter.description || article.description,
2199
+ author: frontmatter.author || frontmatter.authors || article.author,
2200
+ updatedAt: frontmatter.updatedAt || frontmatter.date || article.updatedAt,
2201
+ content: rawContent,
2202
+ htmlContent: htmlContent,
2203
+ headings: headings
2204
+ };
2205
+ };
2206
+ // Search function to find articles matching a query
2207
+ const searchArticles = query => {
2208
+ if (!query || query.trim().length === 0) {
2209
+ return [];
2210
+ }
2211
+ const searchTerm = query.toLowerCase().trim();
2212
+ const results = [];
2213
+ // Search through all categories and their articles
2214
+ for (const category of processedCategories) {
2215
+ for (const article of category.articles) {
2216
+ // Search in title
2217
+ const titleMatch = article.title.toLowerCase().includes(searchTerm);
2218
+ // Search in description
2219
+ const descriptionMatch = article.description.toLowerCase().includes(searchTerm);
2220
+ // Search in content (if available)
2221
+ const contentMatch = article.content?.toLowerCase().includes(searchTerm) || false;
2222
+ // Search in slug
2223
+ const slugMatch = article.slug.toLowerCase().includes(searchTerm);
2224
+ if (titleMatch || descriptionMatch || contentMatch || slugMatch) {
2225
+ results.push(article);
2226
+ }
2227
+ }
2228
+ }
2229
+ // Sort results by relevance (title matches first, then description, then content)
2230
+ results.sort((a, b) => {
2231
+ const aTitleMatch = a.title.toLowerCase().includes(searchTerm);
2232
+ const bTitleMatch = b.title.toLowerCase().includes(searchTerm);
2233
+ if (aTitleMatch && !bTitleMatch) return -1;
2234
+ if (!aTitleMatch && bTitleMatch) return 1;
2235
+ const aDescMatch = a.description.toLowerCase().includes(searchTerm);
2236
+ const bDescMatch = b.description.toLowerCase().includes(searchTerm);
2237
+ if (aDescMatch && !bDescMatch) return -1;
2238
+ if (!aDescMatch && bDescMatch) return 1;
2239
+ return 0;
2240
+ });
2241
+ return results;
2242
+ };export{getAllCategoriesMetadata,getArticleBySlug,getCategoryById,loadArticleContent,searchArticles};//# sourceMappingURL=markdownLoader.js.map