@cdmbase/wiki-browser 12.0.18-alpha.5

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,79 @@
1
+ ---
2
+ meta:
3
+ title: GraphQL Integration in routes.json
4
+ description: GraphQL Integration in routes.json
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: GraphQL Integration in routes.json...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # GraphQL Integration in routes.json
13
+
14
+ This document explains how to integrate GraphQL queries with your routes using the `routes.json` file.
15
+
16
+ ## Defining GraphQL Queries
17
+
18
+ GraphQL queries are defined in the `queries` field of a route in `routes.json`.
19
+
20
+ ### Syntax
21
+
22
+ ```json
23
+ {
24
+ "/path": {
25
+ "queries": {
26
+ "QueryName": "{ variableName: params.paramName }"
27
+ }
28
+ }
29
+ }
30
+ ```
31
+
32
+ ### Example
33
+
34
+ ```json
35
+ {
36
+ "/teams": {
37
+ "queries": {
38
+ "TeamsDocument": "{orgName: params.orgName, pageSize: 10}"
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ ## Passing Parameters to Queries
45
+
46
+ Parameters can be passed to queries using the `params` object. The `params` object contains route parameters and query string parameters.
47
+
48
+ ### Example
49
+
50
+ ```json
51
+ {
52
+ "/o/:orgName/teams": {
53
+ "queries": {
54
+ "TeamsDocument": "{orgName: params.orgName, pageSize: params.pageSize || 10}"
55
+ }
56
+ }
57
+ }
58
+ ```
59
+
60
+ ## Handling Query Results in Components
61
+
62
+ Query results are automatically passed to your components as props.
63
+
64
+ ### Example
65
+
66
+ ```javascript
67
+ const Teams = (props) => {
68
+ const { data } = props.loaderData.TeamsDocument;
69
+ // Use data here
70
+ };
71
+ ```
72
+
73
+ ## Related Topics
74
+
75
+ - For detailed parameter generation, see [Query Params Generator](query-params-generator.md)
76
+ - For automated loader generation, see [Generated Data Loaders](generated-data-loaders.md)
77
+ - For authentication integration, see [Authentication and Authorization](routes-json-auth.md)
78
+
79
+ [Back to Index](routes-json-index.md) | [Previous: Loaders and Data Fetching](routes-json-loaders.md) | [Next: Query Params Generator](query-params-generator.md)
@@ -0,0 +1,112 @@
1
+ ---
2
+ meta:
3
+ title: routes.json and Related Concepts Documentation
4
+ description: routes.json and Related Concepts Documentation
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: routes.json and Related Concepts Documentation...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # routes.json and Related Concepts Documentation
13
+
14
+ Welcome to the comprehensive documentation for `routes.json` and related concepts in our application architecture. This documentation covers various aspects of routing, data loading, styling, and best practices for building robust and efficient applications.
15
+
16
+ ## Table of Contents
17
+
18
+ 1. [Routes Overview](routes-json-overview.md)
19
+ - Purpose of routes.json
20
+ - Basic structure
21
+ - Key benefits
22
+
23
+ 2. [Field Descriptions](routes-json-fields.md)
24
+ - Common fields
25
+ - Authentication and authorization fields
26
+ - Component and data loading fields
27
+ - GraphQL and data fetching fields
28
+ - Additional configuration fields
29
+
30
+ 3. [Authentication and Authorization](routes-json-auth.md)
31
+ - Configuring authentication
32
+ - Setting up authorization
33
+ - Using authority and extraPermissions
34
+ - Automatic wrapper application
35
+
36
+ 4. [Loaders and Data Fetching](routes-json-loaders.md)
37
+ - Server-side loaders
38
+ - Client-side loaders
39
+ - Actions for form submissions
40
+ - Data loading patterns
41
+
42
+ 5. [Middleware System](routes-json-middleware.md)
43
+ - Middleware configuration
44
+ - Data flow through middlewares
45
+ - Error handling in middlewares
46
+
47
+ 6. [Advanced Configurations](routes-json-advanced.md)
48
+ - Custom wrappers
49
+ - Resource URIs
50
+ - Dynamic routes
51
+ - Route groups
52
+
53
+ 7. [Generated Data Loaders](generated-data-loaders.md)
54
+ - Automatic loader generation
55
+ - GraphQL query integration
56
+ - Cache strategies
57
+
58
+ 8. [Query Parameters Generator](query-params-generator.md)
59
+ - Simple vs complex parameters
60
+ - External value integration
61
+ - Parameter generation patterns
62
+
63
+ 9. [Resource Loaders](generated-resource-loaders.md)
64
+ - Resource route patterns
65
+ - Data resolution
66
+ - Error handling
67
+
68
+ 10. [CSS Import and Stylesheets](css-import-and-stylesheets.md)
69
+ - CSS module integration
70
+ - Style loading patterns
71
+ - Build configuration
72
+
73
+ 11. [Component Structure](component-structure-best-practices.md)
74
+ - Network request placement
75
+ - Data fetching patterns
76
+ - Component composition
77
+
78
+ 12. [Configuration Management](configurations.md)
79
+ - Configuration retrieval
80
+ - Settings management
81
+ - Preferences handling
82
+
83
+ 13. [Icon System](routes-extra-icons.md)
84
+ - Icon configuration
85
+ - Selective loading
86
+ - Custom icons
87
+
88
+ 14. [Best Practices](routes-json-best-practices.md)
89
+ - Organization patterns
90
+ - Security considerations
91
+ - Performance optimization
92
+
93
+ ## Quick Start
94
+
95
+ 1. Begin with [Routes Overview](routes-json-overview.md) to understand the basic concepts
96
+ 2. Learn about [Field Descriptions](routes-json-fields.md) for route configuration
97
+ 3. Set up [Authentication](routes-json-auth.md) for your routes
98
+ 4. Implement [Data Loading](routes-json-loaders.md) for your components
99
+
100
+ ## Version Compatibility
101
+
102
+ - Remix: 2.0.0+
103
+ - React: 18.0.0+
104
+ - Node.js: 16.0.0+
105
+
106
+ ## Additional Resources
107
+
108
+ - [Remix Documentation](https://remix.run/docs)
109
+ - [React Documentation](https://react.dev)
110
+ - [GraphQL Documentation](https://graphql.org/learn)
111
+
112
+ Happy coding!
@@ -0,0 +1,165 @@
1
+ ---
2
+ meta:
3
+ title: Loaders and Data Fetching in routes.json
4
+ description: Loaders and Data Fetching in routes.json
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Loaders and Data Fetching in routes.json...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # Loaders and Data Fetching in `routes.json`
13
+
14
+ This document explains how to configure and use loaders, actions, and handle server-side and client-side code separation in your routes using the `routes.json` file.
15
+
16
+ ## Server-Side Loaders
17
+
18
+ Server-side loaders are used to fetch data on the server before rendering a component. They are configured using the `hasLoader` field in `routes.json`. By default, server-side code must be located in files ending with `.server.js` for security and performance reasons.
19
+
20
+ ### Syntax
21
+
22
+ ```json
23
+ {
24
+ "/path": {
25
+ "hasLoader": true,
26
+ "componentPath": "@adminide-stack/user-auth0/lib/components/callback.server.js"
27
+ }
28
+ }
29
+ ```
30
+
31
+ ### Implementation
32
+
33
+ When `hasLoader` is set to `true`, you need to implement a loader function in your route file:
34
+
35
+ ```javascript
36
+ export const loader = async ({ params, context }) => {
37
+ // Fetch data here
38
+ return { data };
39
+ };
40
+ ```
41
+
42
+ ### Handling Component with server code by using `hasServerCode`
43
+
44
+ Remix recommends separating server-side logic into `.server.js` files for security and performance reasons. When the `hasServerCode` flag is set to `true`, it means that server-side code like loaders, actions, and headers will be located in a `.server.js` file, while client-side logic remains in the main component file.
45
+
46
+ To ensure that `routes` understands there is a `.server.js` file in addition to `componentPath`, make sure to set `hasServerCode` to `true`.
47
+
48
+ #### Example Configuration When `hasServerCode` is `true`
49
+
50
+ ```json
51
+ {
52
+ "/login": {
53
+ "hasLoader": true,
54
+ "hasServerCode": true,
55
+ "componentPath": "@adminide-stack/user-auth0-browser-ant/lib/components/Login/index.js"
56
+ }
57
+ }
58
+ ```
59
+
60
+ #### Generated Wrapper When `hasServerCode` is `true`
61
+
62
+ ```javascript
63
+ import OriginalComponent from '@adminide-stack/user-auth0-browser-ant/lib/components/Login/index.js';
64
+ import { loader as loaderFunc } from '@adminide-stack/user-auth0-browser-ant/lib/components/Login/index.server.js';
65
+ ```
66
+
67
+ #### Example Configuration When `hasServerCode` is `false`
68
+
69
+ ```json
70
+ {
71
+ "/login": {
72
+ "hasLoader": true,
73
+ "hasServerCode": false,
74
+ "componentPath": "@adminide-stack/user-auth0-browser-ant/lib/components/Login/index.js"
75
+ }
76
+ }
77
+ ```
78
+
79
+ #### Generated Wrapper When `hasServerCode` is `false`
80
+
81
+ ```javascript
82
+ import OriginalComponent, {
83
+ loader as loaderFunc,
84
+ } from '@adminide-stack/user-auth0-browser-ant/lib/components/Login/index.js';
85
+ ```
86
+
87
+ By separating the server-side code into `.server.js` files, we ensure that sensitive server-side logic is not included in the client bundle, as recommended by [Remix](https://remix.run/docs/en/main/discussion/server-vs-client).
88
+
89
+ ## Client-Side Loaders
90
+
91
+ Client-side loaders are used to fetch data on the client after the initial render. They are configured using the `hasClientLoader` field in `routes.json`.
92
+
93
+ ### Syntax
94
+
95
+ ```json
96
+ {
97
+ "/path": {
98
+ "hasClientLoader": true
99
+ }
100
+ }
101
+ ```
102
+
103
+ ### Implementation
104
+
105
+ When `hasClientLoader` is set to `true`, you need to implement a client loader function:
106
+
107
+ ```javascript
108
+ export const clientLoader = async ({ params }) => {
109
+ // Fetch data here
110
+ return { data };
111
+ };
112
+ ```
113
+
114
+ ## Actions for Form Submissions and Mutations
115
+
116
+ Actions are used for handling form submissions and mutations. They are configured using the `hasAction` field in `routes.json`.
117
+
118
+ ### Syntax
119
+
120
+ ```json
121
+ {
122
+ "/path": {
123
+ "hasAction": true
124
+ }
125
+ }
126
+ ```
127
+
128
+ ### Implementation
129
+
130
+ When `hasAction` is set to `true`, you need to implement an action function:
131
+
132
+ ```javascript
133
+ export const action = async ({ request }) => {
134
+ // Handle form submission or mutation here
135
+ return { result };
136
+ };
137
+ ```
138
+
139
+ ## Integrating Loaders with Authentication and Authorization
140
+
141
+ Loaders can be integrated with authentication and authorization by checking the user's permissions before fetching data:
142
+
143
+ ```javascript
144
+ export const loader = async ({ params, context }) => {
145
+ const { user } = context;
146
+ if (!user) {
147
+ throw new Error('Unauthorized');
148
+ }
149
+ if (!user.hasPermission('required.permission')) {
150
+ throw new Error('Forbidden');
151
+ }
152
+ // Fetch data here
153
+ return { data };
154
+ };
155
+ ```
156
+
157
+ ## Why Separating Server-Side Code Matters
158
+
159
+ Separating server-side code into `.server.js` files provides the following benefits:
160
+
161
+ 1. **Security**: Sensitive logic is not included in the client bundle.
162
+ 2. **Performance**: Smaller client bundles and faster loading times.
163
+ 3. **Clarity**: Clear distinction between client and server code, improving maintainability.
164
+
165
+ [Back to Index](routes-json-index.md) | [Previous: Authentication](routes-json-auth.md) | [Next: Middleware System](routes-json-middleware.md)
@@ -0,0 +1,196 @@
1
+ ---
2
+ meta:
3
+ title: Middleware Configuration in routes.json
4
+ description: Middleware Configuration in routes.json
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Middleware Configuration in routes.json...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # Middleware Configuration in routes.json
13
+
14
+ ## Overview
15
+
16
+ Middlewares in `routes.json` allow you to inject data processing logic before your component renders. They can modify the context, prepare data, and interact with loaders.
17
+
18
+ ## Configuration
19
+
20
+ ### Basic Structure
21
+
22
+ ```json
23
+ {
24
+ "/path": {
25
+ "exact": true,
26
+ "key": "unique-key",
27
+ "name": "Route Name",
28
+ "middlewares": ["@your-package/path/to/middleware.js"],
29
+ "componentPath": "@your-package/path/to/component.js",
30
+ "hasLoader": true,
31
+ "hasComponent": true,
32
+ "loaderReturnInfo": {
33
+ "returnType": "defer",
34
+ "hasOptions": false,
35
+ "keys": ["dataKey"]
36
+ }
37
+ }
38
+ }
39
+ ```
40
+
41
+ ### Fields Explanation
42
+
43
+ - **`middlewares`**: Array of paths to middleware files
44
+ - **`hasLoader`**: Boolean indicating if the component has a loader
45
+ - **`loaderReturnInfo`**: Configuration for loader return behavior
46
+ - `returnType`: Type of loader return ("defer" for async data)
47
+ - `hasOptions`: Boolean for additional options
48
+ - `keys`: Array of data keys that the loader will return
49
+
50
+ ## Middleware Implementation
51
+
52
+ Middlewares should export a function with the following signature:
53
+
54
+ ```typescript
55
+ export const middleware = async (
56
+ { context, request, params }, // Route information
57
+ dataLoader, // Data loader instance
58
+ next, // Next middleware function
59
+ ) => {
60
+ // Middleware logic
61
+ await next(); // Proceed to next middleware
62
+ };
63
+ ```
64
+
65
+ ### Example Middleware
66
+
67
+ ```javascript
68
+ export const middleware = async ({ context, request, params }, dataLoader, next) => {
69
+ const { apolloClient, logger } = context;
70
+
71
+ try {
72
+ // Async data fetching
73
+ const query1 = new Promise((resolve) => {
74
+ setTimeout(() => {
75
+ resolve({ data: 'Some api data' });
76
+ }, 1000);
77
+ });
78
+
79
+ logger.info('Data loaded and cached');
80
+
81
+ // Initialize componentData if needed
82
+ dataLoader.componentData = dataLoader.componentData || {};
83
+
84
+ // Assign async function to componentData
85
+ dataLoader.componentData.apiData = async () => await query1;
86
+
87
+ await next(); // Continue to next middleware
88
+ } catch (error) {
89
+ logger.error(error, 'Failed to load data:');
90
+ throw error;
91
+ }
92
+ };
93
+ ```
94
+
95
+ ## Component Implementation
96
+
97
+ Components can access middleware data through the loader and Remix's `useLoaderData` hook:
98
+
99
+ ```typescript
100
+ import React from 'react';
101
+ import { Await, useLoaderData } from '@remix-run/react';
102
+ import { Spinner } from '@your-ui-library';
103
+ import { defer } from '@remix-run/node';
104
+
105
+ // Loader accessing middleware data
106
+ export const loader = async ({ context, _dataContext }) => {
107
+ const apiData = _dataContext?.componentData?.apiData();
108
+ return defer({
109
+ apiData,
110
+ });
111
+ };
112
+
113
+ // Component using loader data
114
+ export default (props) => {
115
+ const loaderData = useLoaderData();
116
+
117
+ return (
118
+ <React.Suspense fallback={<Spinner />}>
119
+ <Await resolve={Promise.all([loaderData.apiData])}>
120
+ {([{ data }]) => <YourComponent {...props} apiData={data} />}
121
+ </Await>
122
+ </React.Suspense>
123
+ );
124
+ };
125
+ ```
126
+
127
+ ## Data Flow
128
+
129
+ 1. Middleware executes before the component loader
130
+ 2. Middleware adds data to the `dataLoader.componentData` object
131
+ 3. Loader accesses this data through `_dataContext.componentData`
132
+ 4. Component receives data through `useLoaderData` and `Await`
133
+
134
+ ## Best Practices
135
+
136
+ 1. **Error Handling**: Always include proper error handling in middlewares
137
+ 2. **Type Safety**: Use TypeScript interfaces for middleware parameters
138
+ 3. **Initialization**: Check if `componentData` exists before using
139
+ 4. **Async Operations**: Use `defer` for async data loading
140
+ 5. **Loading States**: Provide appropriate loading indicators
141
+
142
+ ## Example with Multiple Middlewares
143
+
144
+ ```json
145
+ {
146
+ "/complex-route": {
147
+ "middlewares": ["@package/auth-middleware.js", "@package/data-middleware.js", "@package/logging-middleware.js"],
148
+ "hasLoader": true,
149
+ "loaderReturnInfo": {
150
+ "returnType": "defer",
151
+ "keys": ["authData", "apiData", "logData"]
152
+ }
153
+ }
154
+ }
155
+ ```
156
+
157
+ Middlewares execute in order, each having access to data set by previous middlewares:
158
+
159
+ ```typescript
160
+ // First middleware
161
+ export const authMiddleware = async ({ context }, dataLoader, next) => {
162
+ dataLoader.componentData = dataLoader.componentData || {};
163
+ dataLoader.componentData.authData = async () => ({ user: 'authenticated' });
164
+ await next();
165
+ };
166
+
167
+ // Second middleware
168
+ export const dataMiddleware = async ({ context }, dataLoader, next) => {
169
+ dataLoader.componentData.apiData = async () => ({ data: 'fetched' });
170
+ await next();
171
+ };
172
+
173
+ // Component loader
174
+ export const loader = async ({ _dataContext }) => {
175
+ const [authData, apiData] = await Promise.all([
176
+ _dataContext.componentData.authData(),
177
+ _dataContext.componentData.apiData(),
178
+ ]);
179
+
180
+ return defer({
181
+ authData,
182
+ apiData,
183
+ });
184
+ };
185
+ ```
186
+
187
+ ## Troubleshooting
188
+
189
+ Common issues and solutions:
190
+
191
+ 1. **Middleware Not Executing**: Verify path in `routes.json` is correct
192
+ 2. **Data Not Available**: Check `componentData` initialization
193
+ 3. **Type Errors**: Ensure proper TypeScript types for data
194
+ 4. **Loading Issues**: Verify `defer` usage and Suspense boundaries
195
+
196
+ [Back to Index](routes-json-index.md) | [Previous: Loaders and Data Fetching](routes-json-loaders.md) | [Next: Advanced Configurations](routes-json-advanced.md)
@@ -0,0 +1,53 @@
1
+ ---
2
+ meta:
3
+ title: routes.json Overview
4
+ description: routes.json Overview
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: routes.json Overview...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # routes.json Overview
13
+
14
+ The `routes.json` file is a crucial configuration file in our application that defines the structure and behavior of routes and their associated components. This file provides metadata for each route, including path, authority, loaders, and component paths.
15
+
16
+ ## Purpose
17
+
18
+ The main purposes of `routes.json` are:
19
+
20
+ 1. Define the application's route structure
21
+ 2. Specify component paths for each route
22
+ 3. Configure authentication and authorization requirements
23
+ 4. Set up data loading mechanisms (server-side and client-side)
24
+ 5. Define GraphQL queries associated with routes
25
+ 6. Specify additional permissions and configurations
26
+
27
+ ## Basic Structure
28
+
29
+ Each entry in `routes.json` represents a route and is structured as follows:
30
+
31
+ ```json
32
+ {
33
+ "/path": {
34
+ "key": "unique.key",
35
+ "name": "Human Readable Name",
36
+ "path": "/path",
37
+ "componentPath": "path/to/component.js",
38
+ "auth": true,
39
+ "authority": ["required.permission"],
40
+ "hasLoader": true
41
+ // ... other configurations
42
+ }
43
+ }
44
+ ```
45
+
46
+ ## Key Benefits
47
+
48
+ 1. **Centralized Configuration**: All route-related information is in one place.
49
+ 2. **Automatic Wrapping**: The application can automatically apply necessary wrappers based on the configuration.
50
+ 3. **Separation of Concerns**: Clearly separates routing logic from component implementation.
51
+ 4. **Easy Maintenance**: Simplifies the process of adding, modifying, or removing routes.
52
+
53
+ [Back to Index](routes-json-index.md) | [Previous: Best Practices](routes-json-best-practices.md) | [Next: Field Descriptions](routes-json-fields.md)
@@ -0,0 +1,43 @@
1
+ ---
2
+ meta:
3
+ title: Data Loaders
4
+ description: Data Loaders
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Data Loaders...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # Data Loaders
13
+
14
+ ## What are Data Loaders
15
+
16
+ [Data loaders](https://remix.run/docs/en/main/route/loader) are a powerful feature in Remix, that streamline data
17
+ fetching by separating the concerns of UI and data handling. They allow developers to fetch data on the server side
18
+ before rendering a component, ensuring that the UI is not tied to the data fetching logic. This abstraction simplifies
19
+ code maintenance, improves performance by reducing client-side data fetching, and enhances SEO by preloading data. By
20
+ defining data loaders at the route level, Remix ensures that each route manages its own data dependencies, leading to a
21
+ more modular and scalable application structure.
22
+
23
+ ## What are Client Loaders
24
+
25
+ [Client loaders](https://remix.run/docs/en/main/route/client-loader) in Remix are functions that fetch data on the
26
+ client side, typically used when data needs to be refreshed or updated without a full page reload. Unlike server
27
+ loaders, which fetch data on the server before rendering the page, client loaders run in the browser after the initial
28
+ render.
29
+
30
+ Here's a comparison table highlighting the differences between client loaders and server loaders in Remix:
31
+
32
+ | Feature | Server Loaders | Client Loaders |
33
+ | ---------------------- | ------------------------------------------------------ | -------------------------------------------------------------------- |
34
+ | **Execution Context** | Run on the server before rendering the page | Run in the browser after the initial render |
35
+ | **Initial Load Time** | Improves initial load time by pre-fetching data | Data fetched after initial load, may slightly delay updates |
36
+ | **SEO Benefits** | Enhances SEO by providing pre-rendered content | Limited SEO benefits as data is fetched client-side |
37
+ | **Use Cases** | Initial data fetching, SEO optimization, pre-rendering | Real-time updates, user-triggered data fetches, periodic re-fetching |
38
+ | **Performance Impact** | Reduces client-side load, faster initial render | Dynamic updates without full page reload, improves user experience |
39
+ | **Complexity** | Simpler for initial load scenarios | More complex handling for dynamic, real-time data updates |
40
+
41
+ This table should help clarify when to use each type of loader based on your application's needs.
42
+
43
+ ## Auto generated loaders