@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,359 @@
1
+ ---
2
+ meta:
3
+ title: Setup Resource CRUD
4
+ description: Setup Resource CRUD
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Setup Resource CRUD...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Setup Resource CRUD
13
+
14
+ This guide will walk you through on how to add CRUD operations against any new/existing resource
15
+ in the app without much hassle. There are few simple steps you need to follow and in the end you'll have
16
+ all the required GraphQL queries and mutations against that resource.
17
+
18
+ ## Define Schema
19
+
20
+ For each resource we have schema definitions in multiple formats to be used by respective lib,
21
+
22
+ ### GraphQL
23
+
24
+ GraphQL type needs to be defined in the GraphQL schema, to be used by GraphQL server and later on these will
25
+ be used to generate typescript definitions using [GraphQL codegen](https://the-guild.dev/graphql/codegen). You need to
26
+ define both return
27
+ types
28
+ and input types
29
+
30
+ ```graphql
31
+
32
+ type User{}
33
+ type Users{
34
+ totalCount: Int!,
35
+ data: [User!]
36
+ }
37
+
38
+ input CreateInput{
39
+
40
+ }
41
+ input UpdateUserInput{
42
+
43
+ }
44
+ ```
45
+
46
+ ### Typescript
47
+
48
+ Typescript definitions are auto generated by GraphQL schema, to be used by Typescript compiler. All you need to is to
49
+ run
50
+
51
+ ```sh
52
+ npn run generateGraphql
53
+ ```
54
+
55
+ > Note: We are assuming that you have already updated `codegen.yml`configs with your module
56
+
57
+ ### Mongoose Model
58
+
59
+ Mongoose model schema to be used by mongoose for mongo DB operations. Create a new Mongoose Model
60
+ file under `store/models`, following the naming convention `<resource-name>-model.ts` e.g. `user-model.ts`
61
+
62
+ ```typescript
63
+ import { Connection, Document, Model, Schema } from 'mongoose';
64
+ import { addIdVirtualFields, commonModeSchemaOptions } from '@common-stack/store-mongo';
65
+ import { IUser } from 'generated-modals';
66
+
67
+ export type IUserMongoModel = Document & IUser;
68
+ export const userScehma = new Schema<IUserMongoModel>(
69
+ {
70
+ //.. schema definition for model
71
+ },
72
+ commonModeSchemaOptions,
73
+ );
74
+
75
+ addIdVirtualFields(userScehma);
76
+ export type UserModelType = Model<IUserMongoModel>;
77
+ export const UserModelFunc: (db: Connection) => UserModelType = (db) => db.model<IUserMongoModel>('users', userScehma);
78
+ ```
79
+
80
+ ## Define Repository
81
+
82
+ We are using repositories to communicate with db and perform all db operations. You repository should encapsulate all db
83
+ related logic and
84
+ how you are communicating with the db giving an abstraction to upper level services, so they don't have
85
+ to worry about the which data source is being used.
86
+
87
+ Create a new Repository file under `store/repositoires`, following the naming convention `<resource-name>-repository.ts`
88
+ e.g `user-repository.ts` and
89
+
90
+ repository type definitions under `interfaces/<resource-name>-service-interface.ts` e.g `user-service-interface.ts`
91
+
92
+ ```typescript
93
+ export type IUserRepository = IBaseRepository<IUser>;
94
+ ```
95
+
96
+ ```typescript
97
+ import { BaseRepository, IMongoOptions } from '@common-stack/store-mongo';
98
+ import { inject, injectable, optional } from 'inversify';
99
+ import { Connection } from 'mongoose';
100
+ import { logger as Logger } from '@cdm-logger/server/lib/logger';
101
+ import { UserModelFunc } from '../models';
102
+
103
+ @injectable()
104
+ export class UserRepository extends BaseRepository<IUser> implements IUserRepository {
105
+ constructor(
106
+ @inject('MongoDBConnection')
107
+ db: Connection,
108
+ @inject('Logger')
109
+ logger: typeof Logger,
110
+ @inject('IMongoOptions')
111
+ @optional()
112
+ options?: IMongoOptions,
113
+ ) {
114
+ super(UserModelFunc, db, logger, options);
115
+ }
116
+ }
117
+ ```
118
+
119
+ When you extend from the `BaseRepository` it adds the following methods to your repository
120
+
121
+ ```typescript
122
+ export interface GetAllArgs<T> {
123
+ criteria?: FilterQuery<T>;
124
+ sort?: ISort;
125
+ skip?: number;
126
+ limit?: number;
127
+ selectedFields?: string;
128
+ }
129
+
130
+ export interface IBaseRepository<T, D = Document<T>> {
131
+ count(conditions?: FilterQuery<D>): Promise<number>;
132
+
133
+ getAll(options: GetAllArgs<D>): Promise<T[]>;
134
+
135
+ get(conditions?: FilterQuery<D>, selectedFields?: string): Promise<T>;
136
+
137
+ create<I>(data: I): Promise<T>;
138
+
139
+ upsert<I>(conditions: FilterQuery<D>, update: I, options: any): Promise<T>;
140
+
141
+ update<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T>;
142
+
143
+ bulkUpdate<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T[]>;
144
+
145
+ delete(criteria: FilterQuery<D>): Promise<boolean>;
146
+
147
+ bulkGet(ids: string[], selectedFields?: string): Promise<T[]>;
148
+
149
+ bulkCreate<I>(data: I[]): Promise<T[]>;
150
+
151
+ bulkDelete(criteria: FilterQuery<D>): Promise<number>;
152
+ }
153
+ ```
154
+
155
+ You can then use these methods to perform CRUD on your resource.
156
+
157
+ ### Register with DI
158
+
159
+ Once you have your repository set up and in place, you need to register it with the Dependency Injection so it can
160
+ injected where
161
+ required
162
+
163
+ ```typescript
164
+ // containers/container.ts
165
+
166
+ export const localContainerModule: (settings) => interfaces.ContainerModule = () =>
167
+ new ContainerModule((bind: interfaces.Bind) => {
168
+ //...existing bindings
169
+ bind(TYPES.UserRepository).to(UserRepository).inSingletonScope().whenTargetIsDefault();
170
+ });
171
+
172
+ export const externalContainerModule: (settings) => interfaces.ContainerModule = () =>
173
+ new ContainerModule((bind: interfaces.Bind) => {
174
+ //...existing bindings
175
+ bind(TYPES.UserRepository).to(UserRepository).inSingletonScope().whenTargetIsDefault();
176
+ });
177
+ ```
178
+
179
+ > Note: This assumes that `TYPES` constant has already been updated with the new value.
180
+
181
+ ## Define Service
182
+
183
+ Services incorporate your business rules and domain logic, service utilize `repository` to communicate with the data
184
+ store, a service can consume other service
185
+ if needed to fetch or make changes to other resources.
186
+
187
+ Create a new service file under `services`, following the naming convention `<resource-name>-service.ts`
188
+ e.g `user-service.ts`and type
189
+ definition for it under `interfaces`
190
+
191
+ ```typescript
192
+ // interfaces/user-service.interface.ts
193
+
194
+ export type IUseraService = BaseService<IUser, IUserInput, IUserUpdateInput>;
195
+ ```
196
+
197
+ ```typescript
198
+ // services/user-service.ts
199
+
200
+ import { inject, injectable } from 'inversify';
201
+ import { CommonType } from '@common-stack/core';
202
+ import { ServiceBroker } from 'moleculer';
203
+ import { logger as Logger } from '@cdm-logger/server/lib/logger';
204
+
205
+ @injectable()
206
+ export class UserService extends BaseService<IUser, IUserInput, IUserUpdateInput> implements IUserService {
207
+ constructor(
208
+ @inject(TYPES.UserRepository)
209
+ private readonly repository: IUserRepository,
210
+ ) {
211
+ super(repository);
212
+ }
213
+ }
214
+ ```
215
+
216
+ By extending the `BaseService` the following methods gets added to the new `Service`
217
+
218
+ ```typescript
219
+ export interface IBaseService<T, C = Omit<T, 'id'>, U = C> {
220
+ count(conditions?: FilterQuery<Document<T>>): Promise<number>;
221
+
222
+ get(id: string): Promise<T>;
223
+
224
+ get(conditions?: string | FilterQuery<Document<T>>): Promise<T>;
225
+
226
+ getAll(options?: GetAllArgs<Document<T>>): Promise<T[]>;
227
+
228
+ getByIds(ids: string[]): Promise<T[]>;
229
+
230
+ create(data: C): Promise<T>;
231
+
232
+ insert(
233
+ data: (C | U) & {
234
+ id?: string;
235
+ },
236
+ overwrite?: boolean,
237
+ ): Promise<T>;
238
+
239
+ bulkCreate(data: C[]): Promise<T[]>;
240
+
241
+ update(id: string, data: U, overwrite?: boolean): Promise<T>;
242
+
243
+ delete(id: string): Promise<boolean>;
244
+
245
+ delete(conditions: string | FilterQuery<Document<T>>): Promise<boolean>;
246
+
247
+ getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{
248
+ data: T[];
249
+ totalCount: number;
250
+ }>;
251
+ }
252
+ ```
253
+
254
+ ### Register with the DI
255
+
256
+ Once you have your service file in place, next step is to register it too, with the DI so It can be injected on demand wherever required
257
+
258
+ ```typescript
259
+ // containers/container.ts
260
+ export const localContainerModule: (settings) => interfaces.ContainerModule = () =>
261
+ new ContainerModule((bind: interfaces.Bind) => {
262
+ //...existing bindings
263
+ bind(TYPES.UserService).to(UserService).inSingletonScope().whenTargetIsDefault();
264
+ });
265
+ export const externalContainerModule: (settings) => interfaces.ContainerModule = () =>
266
+ new ContainerModule((bind: interfaces.Bind) => {
267
+ //...existing bindings
268
+ bind(TYPES.UserService).to(UserService).inSingletonScope().whenTargetIsDefault();
269
+ });
270
+ ```
271
+
272
+ ## Add Queries and Mutations
273
+
274
+ Update GraphQL schema to have the new types, queries and mutations, by convention your newly added queries and mutation
275
+ names should look like this.
276
+
277
+ ```graphql
278
+ extend type Query {
279
+ # ... existing queries
280
+ user(id: ID!): UserModel!
281
+ users(id: ID!): UserPageModel!
282
+ }
283
+
284
+ extend type Mutation {
285
+ createUser(user: CreateUserInput!): UserModel!
286
+ updateUser(id: ID!, user: UpdateUserInput!): UserModel!
287
+ deleteUser(id: ID!): Boolean!
288
+ }
289
+ ```
290
+
291
+ After adding to the GraphQL schema generate the new types and next step is to add the resolver for those operations.
292
+
293
+ ```typescript
294
+ export const userResolver = (): IResolvers<IContext> => ({
295
+ User: {
296
+ // # Nested resolvers for relations
297
+ async posts(user, _, args, { postService }) {
298
+ const { data, totalCount } = await userService.getAllWithCount({
299
+ ...args,
300
+ criteria: {
301
+ ...args.criteria,
302
+ user: user.id,
303
+ },
304
+ });
305
+ return {
306
+ totalCount,
307
+ data,
308
+ };
309
+ },
310
+ },
311
+ Query: {
312
+ async users(_, args, { userService }) {
313
+ const { data, totalCount } = await userService.getAllWithCount(args);
314
+ return {
315
+ totalCount,
316
+ data,
317
+ };
318
+ },
319
+ user(_, { id }, { userService }) {
320
+ return userService.get(id);
321
+ },
322
+ },
323
+ Mutation: {
324
+ createUser(_, { user }, { userService }) {
325
+ return userService.create(user);
326
+ },
327
+ updateUser(_, { id, user }, { userService }) {
328
+ return userService.update(id, user, false);
329
+ },
330
+ deleteUser(_, { id }, { userService }) {
331
+ return userService.delete(id);
332
+ },
333
+ },
334
+ });
335
+ ```
336
+
337
+ <blockquote>
338
+
339
+ Note:
340
+ First, you need to register your service in
341
+ the [GraphQL context](https://the-guild.dev/graphql/modules/docs/essentials/context).
342
+ Add it under `createServiceFunc` of [Feature](feature.md) API. If it does not already exist create one.
343
+
344
+ ```typescript
345
+ const createServiceFunc = (container: interfaces.Container): IService => ({
346
+ userService: container.get<IUserService>(TYPES.UserService),
347
+ });
348
+ ```
349
+
350
+ </blockquote>
351
+
352
+ in main resolvers file, register your newly added resolver.
353
+
354
+ ```typescript
355
+ export const resolvers = [...exisitngResolvers, userResolver];
356
+ ```
357
+
358
+ The last thing you need to do is to register the `resolvers` to [Feature](feature.md) API (If it's not already registered).
359
+ Once everything is done you will have the above defined GraphQL queries and mutation performing CRUD on the resource.
@@ -0,0 +1,18 @@
1
+ ---
2
+ meta:
3
+ title: Feature API
4
+ description: Feature API
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Feature API...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Feature Api
13
+
14
+ **[Feature Browser](/docs/feature-api/feature-browser)**
15
+
16
+ **[Feature Mobile](/docs/feature-api/feature-mobile)**
17
+
18
+ **[Feature Server](/docs/feature-api/feature-server)**
@@ -0,0 +1,94 @@
1
+ ---
2
+ meta:
3
+ title: Apollo Client Mutation
4
+ description: Apollo Client Mutation
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Apollo Client Mutation...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## How to write a mutation with optimistic update and actual cache update:
13
+
14
+ ### Writing a Mutation with Optimistic Update and Cache Update
15
+
16
+ 1. **Define the Mutation with Optimistic Response:**
17
+ - Create the mutation with an `optimisticResponse` to immediately update the UI with predicted results.
18
+
19
+ ```typescript
20
+ updateOrgClient({
21
+ variables: { updateRequest: { id: client.id, payload: newClient } },
22
+ optimisticResponse: {
23
+ __typename: 'Mutation',
24
+ updateOrgClient: {
25
+ ...newClient,
26
+ id: client.id,
27
+ },
28
+ },
29
+ update(cache, { data }) {
30
+ if (data?.updateOrgClient) {
31
+ cache.modify({
32
+ fields: {
33
+ getOrgClient(existingData = {}) {
34
+ return {
35
+ ...existingData,
36
+ ...data.updateOrgClient,
37
+ };
38
+ },
39
+ },
40
+ });
41
+ }
42
+ },
43
+ });
44
+ ```
45
+
46
+ 2. **Cache Update:**
47
+ - Use the `update` function to modify the cache after the mutation completes.
48
+
49
+ ```typescript
50
+ update(cache, { data }) {
51
+ if (data?.updateOrgClient) {
52
+ cache.modify({
53
+ fields: {
54
+ getOrgClient(existingData = {}) {
55
+ return {
56
+ ...existingData,
57
+ ...data.updateOrgClient,
58
+ };
59
+ },
60
+ },
61
+ });
62
+ }
63
+ }
64
+ ```
65
+
66
+ 3. **Adding a New Client with Optimistic Response:**
67
+ - Handle adding a new client similarly, generating a temporary ID.
68
+ ```typescript
69
+ addClient({
70
+ variables: { client: newClient },
71
+ optimisticResponse: {
72
+ __typename: 'Mutation',
73
+ addClient: {
74
+ ...newClient,
75
+ id: Math.random().toString(36).substring(2, 15), // Generate a temporary ID
76
+ },
77
+ },
78
+ update(cache, { data }) {
79
+ if (data?.addClient) {
80
+ cache.modify({
81
+ fields: {
82
+ getClients(existingClients = []) {
83
+ return [...existingClients, data.addClient];
84
+ },
85
+ },
86
+ });
87
+ }
88
+ },
89
+ });
90
+ ```
91
+
92
+ By following these steps, you can implement mutations with optimistic updates and actual cache updates effectively.
93
+
94
+ References for optimistic update can be found [here](https://www.apollographql.com/docs/react/performance/optimistic-ui)
@@ -0,0 +1,14 @@
1
+ ---
2
+ meta:
3
+ title: Graphql
4
+ description: Graphql
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Graphql...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Graphql
13
+
14
+ **[Scalars](/docs/graphql/scalars)**
@@ -0,0 +1,15 @@
1
+ ---
2
+ meta:
3
+ title: Scalars
4
+ description: Scalars
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Scalars...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Scalars
13
+
14
+ Timestamp
15
+ The JavaScript Date is an integer. Type represents date and time as number of milliseconds from start of the UNIX epoch.
@@ -0,0 +1,14 @@
1
+ ---
2
+ meta:
3
+ title: Help
4
+ description: Help
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Help...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Help
13
+
14
+ **[Welcome](/docs/help/intro)**
@@ -0,0 +1,16 @@
1
+ ---
2
+ meta:
3
+ title: Welcome
4
+ description: Welcome
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Welcome...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Welcome
13
+
14
+ These pages are primarily intended for those who wish to contribute to the CDE Base projects by submitting bug reports, suggesting new features, building extensions, commenting on new ideas, or even by submitting pull requests.
15
+
16
+ Please refer to the sidebar (on the right) for details on Contributing to CDE Code, and Documentation.
@@ -0,0 +1,74 @@
1
+ ---
2
+ meta:
3
+ title: Ant Design Menu Translation
4
+ description: Ant Design Menu Translation
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Ant Design Menu Translation...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Ant Design Menu Translation
13
+
14
+ To enable menu translations, we need to use translation keys in the menu routes and apply the `t` function when rendering the menu.
15
+
16
+ For instance, consider the following routes:
17
+
18
+ ```
19
+ {
20
+ path: `${ORG_STD_ROUTES.USER_BASE_PATH}`,
21
+ key: 'usermenu',
22
+ tab: 'User Account',
23
+ exact: false,
24
+ name: 'User',
25
+ component: () => import('./components/Account'),
26
+ position: IMenuPosition.BOTTOM,
27
+ icon: 'AiOutlineUser',
28
+ priority: 1,
29
+ // authority: ['admin', 'user'],
30
+ },
31
+ {
32
+ path: `${ORG_STD_ROUTES.USER_BASE_PATH}/billing`,
33
+ key: 'usermenu.billing',
34
+ exact: true,
35
+ name: 'Billing Setting',
36
+ component: () => import('./components/Billing'),
37
+ position: IMenuPosition.BOTTOM,
38
+ priority: 3,
39
+ authority: ['admin', 'user'],
40
+ },
41
+ ```
42
+
43
+ In the routes above, we need to use translation keys in the route names instead of the actual names. For example, instead of using route names like `User` and `Billing Setting`, we should use translation keys such as `menu.user` and `menu.billing_setting`.
44
+
45
+ Here are the updated routes to make translations work:
46
+
47
+ ```
48
+ {
49
+ path: `${ORG_STD_ROUTES.USER_BASE_PATH}`,
50
+ key: 'usermenu',
51
+ tab: 'User Account',
52
+ exact: false,
53
+ name: 'menu.user',
54
+ component: () => import('./components/Account'),
55
+ position: IMenuPosition.BOTTOM,
56
+ icon: 'AiOutlineUser',
57
+ priority: 1,
58
+ // authority: ['admin', 'user'],
59
+ },
60
+ {
61
+ path: `${ORG_STD_ROUTES.USER_BASE_PATH}/billing`,
62
+ key: 'usermenu.billing',
63
+ exact: true,
64
+ name: 'menu.billing_setting',
65
+ component: () => import('./components/Billing'),
66
+ position: IMenuPosition.BOTTOM,
67
+ priority: 3,
68
+ authority: ['admin', 'user'],
69
+ },
70
+ ```
71
+
72
+ The translation keys should be defined in the `menu.json` file in the package that have those menu as follows:
73
+
74
+ ![image](https://github.com/user-attachments/assets/7e1e1aab-fe32-402b-8ac5-3626087f3418)