@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,516 @@
1
+ ---
2
+ meta:
3
+ title: Build Tools
4
+ description: Build Tools
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Build Tools...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # What is lerna?
13
+
14
+ [Lerna](https://github.com/lerna/lerna) allows us to manage multiple packages inside the same repository instead of creating one repository per package. With Lerna, we can unify processes like linting, building, testing, and releasing, have a single place to report issues, and becomes easier to set up our development environment.
15
+
16
+ # Things to know about current package structure
17
+
18
+ - We run `lerna` commands by wrapped into `npm/yarn` commands.
19
+ - You will notice there are following commands which run's lerna comamnds.
20
+
21
+ ```json
22
+ {
23
+ ...
24
+ "lerna:prepublish": "git checkout publish && git merge -s recursive -X theirs master",
25
+ "lerna:prepublish:develop": "git checkout publish-develop && git merge -s recursive -X theirs develop",
26
+ "watch": "lerna exec --no-sort --ignore *server --stream --parallel -- webpack --watch",
27
+ "publish": "yarn lerna:prepublish && lerna publish",
28
+ "lerna": "lerna bootstrap --hoist",
29
+ "postinstall": "yarn lerna",
30
+ "clean": "lerna clean",
31
+ "build": "yarn build:packages",
32
+ "build:packages": "lerna run build --ignore *server",
33
+ "build:packages:watch": "lerna run build:lib:watch --ignore *server --stream",
34
+ "watch-packages": "lerna exec --no-sort --scope @admin-layout/chakra-design-pro --scope @admin-layout/client --stream --parallel 'webpack --watch'",
35
+ ...
36
+ }
37
+ ```
38
+
39
+ # Details on each command that wrapped for lerna
40
+
41
+ - `yarn install` - This command need to be run in the root of the package only to install all the dependencies. We have post step(`postinstall`) to run `yarn lerna` after install finishes so `lerna` will installs all of packages (seen under packages directory) dependencies and links any cross-dependencies.
42
+ Note: We do not need to run `yarn` under any packages with `package.json` files seen under `packages` and `servers` directories.
43
+ - `yarn lerna` - This triggers `lerna bootstrap --hoist`. Normally this get triggered as post install step. You can run this command to install any packages' dependencies. More information about this command can be found [here](https://github.com/lerna/lerna/blob/master/doc/hoist.md). The bottom line, the `hoist` will try to install all common dependencies to the top-level node_modules, and omitted from individual package's `node_modules`.
44
+ The outlier packages with different versions will get a normal, local node_modules installation of the necessary dependencies.
45
+ - `yarn clean` - Removes the `node_modules` directory from all packages.
46
+ - `yarn clean:force` - Removes the `node_modules` directory from all packages as well as `package-lock.json` file.
47
+ - `yarn build` - It invokes `yarn build` in each packages parallely.
48
+ - `yarn watch` - Automatically builds the packages that are changed. Recommended to run this when actively coding, so you would know anything (compilation errors) breaks instantly. You may also see `Error: ENOSPC: System limit for number of file watchers reached` if you OS is not configured with high open files. Check [Not Enough Watchers](#not-enough-watchers) section for futher information.
49
+ - `yarn watch-packages` - Abutomatically builds the dependent packages mostly under `packages` folder.
50
+ - `yarn watch-packages -- --scope @sample-stack/counter-module-*` - By adding package module you like to watch along with the dependent packages. If you have more packages to watch keep adding with `-- --scope packageA* --scope packageB`
51
+
52
+ ## List packages
53
+
54
+ Using the following folder structure, versions, and privacy as an example:
55
+
56
+ ```bash
57
+ fullstack-pro/
58
+ ├── packages
59
+ │   ├── sample-core # 1.1.1 - public
60
+ │   ├── sample-platform
61
+ │   │   ├── browser # 1.1.1 - public
62
+ │   │   └── server # 1.1.1 - public
63
+ │ ...
64
+ ├── packages-modules
65
+ │   └── counter
66
+ │   │ ├── browser
67
+ │   │ └── server
68
+ ├── servers
69
+ │   ├── backend-server # 1.0.0 - private
70
+ │   ├── frontend-server # 1.0.0 - private
71
+ │ ...
72
+ |── package.json
73
+ └── lerna.json # 1.1.1
74
+ ```
75
+
76
+ List all public packages
77
+
78
+ ```bash
79
+ lerna ls
80
+
81
+ # result
82
+ @sample-stack/counter-module-browser
83
+ @sample-stack/counter-module-server
84
+ @sample-stack/core
85
+ @sample-stack/platform-browser
86
+ @sample-stack/platform-server
87
+ @sample-stack/store
88
+ ```
89
+
90
+ List all packages (public and private)
91
+
92
+ ```bash
93
+ lerna ls --all
94
+
95
+ # result
96
+ @sample-stack/counter-module-browser
97
+ @sample-stack/counter-module-server
98
+ @sample-stack/core
99
+ @sample-stack/platform-browser
100
+ @sample-stack/platform-server
101
+ @sample-stack/store
102
+ sample-stack-desktop (PRIVATE)
103
+ sample-stack-mobile (PRIVATE)
104
+ sample-stack-backend-server (PRIVATE)
105
+ sample-stack-frontend-server (PRIVATE)
106
+ sample-stack-moleculer-server (PRIVATE)
107
+ ```
108
+
109
+ List all public packages with more details
110
+
111
+ ```bash
112
+ lerna ll
113
+ # or
114
+ lerna ls -l
115
+
116
+ # result
117
+ @sample-stack/counter-module-browser v0.0.1 packages-modules/counter/browser
118
+ @sample-stack/counter-module-server v0.0.1 packages-modules/counter/server
119
+ @sample-stack/core v0.0.1 packages/sample-core
120
+ @sample-stack/platform-browser v0.0.1 packages/sample-platform/browser
121
+ @sample-stack/platform-server v0.0.1 packages/sample-platform/server
122
+ @sample-stack/store v0.0.1 packages/sample-store
123
+ ```
124
+
125
+ List all public and private packages with details
126
+
127
+ ```bash
128
+ lerna la
129
+ # or
130
+ lerna ls -la
131
+
132
+ # result
133
+ @sample-stack/counter-module-browser v0.0.1 packages-modules/counter/browser
134
+ @sample-stack/counter-module-server v0.0.1 packages-modules/counter/server
135
+ @sample-stack/core v0.0.1 packages/sample-core
136
+ @sample-stack/platform-browser v0.0.1 packages/sample-platform/browser
137
+ @sample-stack/platform-server v0.0.1 packages/sample-platform/server
138
+ @sample-stack/store v0.0.1 packages/sample-store
139
+ sample-stack-desktop v0.0.1 portable-devices/desktop (PRIVATE)
140
+ sample-stack-mobile v0.0.1 portable-devices/mobile (PRIVATE)
141
+ sample-stack-backend-server v0.0.1 servers/backend-server (PRIVATE)
142
+ sample-stack-frontend-server v0.0.1 servers/frontend-server (PRIVATE)
143
+ sample-stack-moleculer-server v0.0.1 servers/moleculer-server (PRIVATE)
144
+ ```
145
+
146
+ ## Adding packages as dependencies to sibling packages
147
+
148
+ When a package is depend on sibiling packages, make sure to add its `package.json` file with `link`
149
+
150
+ ```
151
+ "dependencies": {
152
+ ...
153
+ "@common-stack/client-core": "link:../../packages/common-client-core",
154
+ },
155
+ ```
156
+
157
+ ## Dependencies
158
+
159
+ The dependencies of our projects are registered inside the **package.json** file. This file is usually in the project's root folder, but it is also inside each package in the Lerna projects. **Each package has its dependencies.**
160
+
161
+ ```bash
162
+ fullstack-pro/
163
+ ├── packages
164
+ │   ├── sample-core
165
+ │   │   ├── package.json
166
+ │   │   └── ...
167
+ │   ├── sample-platform
168
+ │   │   ├── browser
169
+ │ │   │   ├── package.json
170
+ │ │   │   └── ...
171
+ │   │   └── server
172
+ │ │   │   ├── package.json
173
+ │ │   │   └── ...
174
+ │ ...
175
+ ├── packages-modules
176
+ │   └── counter
177
+ │   │ ├── browser
178
+ │ │   │   ├── package.json
179
+ │ │   │   └── ...
180
+ │   │ └── server
181
+ │ │   │   ├── package.json
182
+ │ │   │   └── ...
183
+ ├── servers
184
+ │   ├── backend-server
185
+ │   │   ├── package.json
186
+ │   │   └── ...
187
+ │   ├── frontend-server
188
+ │   │   ├── package.json
189
+ │   │   └── ...
190
+ │ ...
191
+ |── package.json
192
+ └── lerna.json
193
+ ```
194
+
195
+ To add dependencies to the packages, Lerna provides us the command `lerna add`. Note that only a single package can be added at a time compared to `yarn add` or `yarn install`.
196
+
197
+ ### Add dependencies
198
+
199
+ The **dependencies** key must contain all the dependencies our project/application/package/library needs to work in production. **We know when we must declare it as a dependency when its absence has side effects on your production build.**
200
+
201
+ **Adding dependencies**
202
+
203
+ ```bash
204
+ # add a dependency to one package
205
+ lerna add lodash --scope=@sample-stack/counter-module-browser
206
+
207
+ # add a dependency to several packages
208
+ lerna add lodash packages-modules/counter-*
209
+
210
+ # add a dependency to all packages
211
+ lerna add lodash
212
+
213
+ # add a dependency on the root package.json
214
+ lerna add lodash -w
215
+ ```
216
+
217
+ ### Add devDependencies
218
+
219
+ The **devDependencies** key must contain all the **dependencies we use during development or needed during the build of our production bundle**. To add a dependency as devDependency just add the flag `--dev`.
220
+
221
+ ```bash
222
+ # add a devDependency to one package
223
+ lerna add lodash --scope=@sample-stack/counter-module-browser --dev
224
+
225
+ # add a devDependency to several packages
226
+ lerna add lodash packages-modules/counter-* --dev
227
+
228
+ # add a devDependency to all packages
229
+ lerna add lodash --dev
230
+
231
+ # add a devDependency on the root package.json
232
+ lerna add lodash -w --dev
233
+ ```
234
+
235
+ ### Add peerDependencies
236
+
237
+ The **peerDependencies** key is **used when our package has a dependency that can also be a dependency of the project using it**. If our package has a dependency that can also be used by its dependent, we can specify the version required by us and the dependent will receive a warning when not matching that requirement.
238
+
239
+ ```bash
240
+ # add a peerDependency to one package
241
+ lerna add lodash --scope=@sample-stack/counter-module-browser --peer
242
+
243
+ # add a peerDependency to several packages
244
+ lerna add lodash packages-modules/counter-* --peer
245
+
246
+ # add a peerDependency to all packages
247
+ lerna add lodash --peer
248
+ ```
249
+
250
+ ### Updating dependencies
251
+
252
+ Well, that is a problem. Lerna has no direct command to upgrade dependencies, which is ok when we want to update a dependency in the root package.json. We can use yarn as usually:
253
+
254
+ ```bash
255
+ # update a dependency on the root package.json
256
+ yarn upgrade lodash
257
+ ```
258
+
259
+ However, when we want to upgrade a dependency inside a package, nothing seems to work. Using `lerna exec` as we use it to remove dependencies does not work.
260
+
261
+ For now, what we do is manually update the dependencies version in the `package.json` file of each package and then run `yarn install`.
262
+
263
+ ### Updating all sub packages of a **scoped** packages to newest release
264
+
265
+ lerna exec "ncu -u --newest --timeout 60000 -f /@sample-stack\*/"
266
+
267
+ **\*note** after updating packages you need to run `yarn` to install them.
268
+
269
+ ### Removing dependencies
270
+
271
+ Lerna also has no direct way to allow us to remove dependencies from the project or packages but we can use the `lerna exec` and `yarn remove` commands to go around it.
272
+
273
+ `lerna exec` allow us to run a specific command within a particular package, several packages (using a glob expression), or in all of them. Using it with `yarn remove` we can remove dependencies from the packages. Using `yarn remove` alone we can also remove dependencies from the root package.json.
274
+
275
+ ```bash
276
+ # remove a dependency to one package
277
+ lerna exec --scope @sample-stack/counter-module-browser -- yarn remove lodash
278
+
279
+ # remove a dependency to several packages
280
+ lerna exec --scope @sample-stack/counter-* -- yarn remove lodash
281
+
282
+ # remove a dependency to all packages
283
+ lerna exec -- yarn remove lodash
284
+
285
+ # remove a dependency from the root package.json
286
+ yarn remove lodash
287
+ ```
288
+
289
+ ### List modified packages
290
+
291
+ Like the `git status` command that shows us the files that we modified, Lerna provides us the command `lerna changed` that shows us the packages (not the files) that we modified compared to the remote repository.
292
+
293
+ ```bash
294
+ lerna changed
295
+ ```
296
+
297
+ ### Diffing
298
+
299
+ **All modifications**
300
+
301
+ Like the `git diff` command but ignoring the files outside the packages, Lerna provides us the command `lerna diff` that shows us all the code modifications we did. We can also provide a package name to see only the modifications to that package.
302
+
303
+ ```bash
304
+ # all modifications
305
+ lerna diff
306
+
307
+ # modifications in a specific package
308
+ lerna diff @sample-stack/counter-module-browser
309
+ ```
310
+
311
+ ## Publish
312
+
313
+ To publish our packages using Lerna we use the command `lerna publish` but, first, let's configure Lerna only to allow us to create newer versions of our packages from our main branch (eg. master).
314
+
315
+ ```json[lerna.json]
316
+ {
317
+ "version": "0.0.0",
318
+ "command": {
319
+ "version": {
320
+ "allowBranch": "master"
321
+ }
322
+ }
323
+ }
324
+ ```
325
+
326
+ Now, if we try to run `lerna publish` inside another branch, it will fail. As highlighted in the [Lerna documentation](https://github.com/lerna/lerna/tree/main/commands/version#--allow-branch-glob), this is a best practice that can save us some problems.
327
+
328
+ To publish a **scoped package** we also need to set the `publishConfig.access` to `true` in its **package.json**:
329
+
330
+ ```json[packages/sample-core/package.json]
331
+ {
332
+ "name": "@sample-stack/core",
333
+ "version": "0.0.0",
334
+ "publishConfig": {
335
+ "access": "public"
336
+ }
337
+ }
338
+ ```
339
+
340
+ Setting this configuration in a package without a scope fails to publish.
341
+
342
+ Imagine that we started developing the **sample-core** package, and although we merged some initial versions, we didn't finish yet, and **we don't want to release it to npm yet**. We can add to its **package.json** the **private** key with the value `true`, and Lerna will ignore it.
343
+
344
+ ```json[packages/sample-core/package.json]
345
+ {
346
+ "name": "app-button",
347
+ "version": "0.0.0",
348
+ "private": true
349
+ }
350
+ ```
351
+
352
+ ### npm
353
+
354
+ To publish to npm, first, we need to have an npm account.
355
+
356
+ We can see if we are logged in running:
357
+
358
+ ```bash
359
+ npm whoami
360
+ ```
361
+
362
+ In case we are not, we do it running:
363
+
364
+ ```bash
365
+ npm login
366
+ ```
367
+
368
+ Once we are logged in we can run:
369
+
370
+ ```bash
371
+ lerna publish
372
+ ```
373
+
374
+ Which prompts possible versions to update each package. It's up to us to select the right ones based on what we have done. Check the [Semantic Versioning Specification](https://semver.org/) for more information about versioning.
375
+
376
+ ### Github Package Registry
377
+
378
+ To publish in the Github Packages Registry, we need some extra configurations.
379
+
380
+ First, in the **package.json** of each package, we must specify the repository where our code lives.
381
+
382
+ ```json[package.json]
383
+ {
384
+ ...
385
+ "repository" : {
386
+ "type" : "git",
387
+ "url": "ssh://git@github.com:cdmbase/fullstack-pro.git"
388
+ }
389
+ }
390
+ ```
391
+
392
+ Then, in the **lerna.json** file, we must specify the registry to publish the packages. By default, it is the npm registry. We have to change it to the `https://npm.pkg.github.com`.
393
+
394
+ ```json[lerna.json]
395
+ {
396
+ "packages": [
397
+ "packages/*"
398
+ ],
399
+ "version": "0.0.0",
400
+ "command": {
401
+ "version": {
402
+ "allowBranch": "master"
403
+ },
404
+ "publish": {
405
+ "registry": "https://npm.pkg.github.com"
406
+ }
407
+ }
408
+ }
409
+ ```
410
+
411
+ We also have to create a personal token on GitHub with the permissions to read and write packages (`read:packages` and `write:packages`).
412
+
413
+ Using the generated token as a password, we authenticate on GitHub Package Registry:
414
+
415
+ ```bash
416
+ $ npm login --registry=https://npm.pkg.github.com
417
+ > Username: USERNAME
418
+ > Password: TOKEN
419
+ > Email: PUBLIC EMAIL ADDRESS
420
+ ```
421
+
422
+ And we are ready to publish packages:
423
+
424
+ ```bash
425
+ lerna publish
426
+ ```
427
+
428
+ ## Conventional Commits
429
+
430
+ Lerna allows us to use the [Conventional Commits Specification](https://www.conventionalcommits.org/) to determine the bump version and generate the CHANGELOG.md files automatically.
431
+
432
+ Follow the specification, when we are creating a new release, Lerna checks all the commits since the last release and it increments:
433
+
434
+ - the PATCH number when the subject of the commit is prefixed with `fix:`;
435
+ - the MINOR number when the subject of the commit is prefixed with `feat:`. It has precedence over the PATCH;
436
+ - the MAJOR number when in the body of some commit it finds a string `BREAKING CHANGE:`. It can have any type provided in the subject and it has precedence over PATCH and MINOR.
437
+
438
+ Considering that we are using fixed versions and our project is in the version `1.0.0`. If we try to create a new release with the following commit, our project version is updated to `1.0.1`.
439
+
440
+ ```bash
441
+ # commit 1
442
+ subject -> "fix: fix button font size"
443
+ ```
444
+
445
+ Then, if we do two more commits and publish again, the version is updated to `1.1.0`.
446
+
447
+ ```bash
448
+ # commit 1
449
+ subject -> "fix: fix button border-radius"
450
+ # commit 2
451
+ subject -> "feat: added loading status to the button"
452
+ ```
453
+
454
+ Finally, if we do three more commits, the version is updated to `2.0.0`.
455
+
456
+ ```bash
457
+ # commit 1
458
+ subject -> "fix: fix button text color"
459
+ # commit 2
460
+ subject -> "feat: added outlined style"
461
+ # commit 3
462
+ subject -> "feat: changed the loading property to isLoading"
463
+ body: "BREAKING CHANGE: loading prop must be updated to isLoading"
464
+ ```
465
+
466
+ ### Configuration
467
+
468
+ To do that, we update our `lerna.json` file:
469
+
470
+ ```bash
471
+ {
472
+ ...
473
+ "command": {
474
+ "publish": {
475
+ "conventionalCommits": true,
476
+ "yes": true
477
+ }
478
+ }
479
+ }
480
+ ```
481
+
482
+ Now, when we run `lerna publish` instead of asking us what version we want to give to each package, it automatically determines and publishes those versions.
483
+
484
+ ## Not Enough Watchers
485
+
486
+ Based on the project, we may have multiple `packages` and `packages-modules` to watch for file changes in order to automatically apply the changes in the browser.
487
+ When we have more modules to watch, we need laptop resource to support it. If the laptop OS is configured with default `open files`, we need to increase it.
488
+ Follow notes from webpack to change OS configuration to increase file watchers https://webpack.js.org/configuration/watch/#not-enough-watchers
489
+
490
+ But, in case, if you are working in only one or two modules and need to watch them only then you can run below command on each packages,
491
+ respectively.
492
+
493
+ `lerna exec --scope=<package name> yarn watch`
494
+
495
+ example: run them in different command tabs for all (package1, package2, pacakge3) packages to watch.
496
+
497
+ ```
498
+ lerna exec --scope=@sample-stack/counter-module-browser yarn watch
499
+ lerna exec --scope=@sample-stack/counter-module-server yarn watch
500
+ ```
501
+
502
+ ## Packages vs Scoped Packages
503
+
504
+ All npm packages have a name. Some also have a scope. Scopes are a way of grouping related packages together.
505
+
506
+ When we sign up for an npm user account or create an organization, we can use a scope that matches our user or organization name. The same happens for Github Packages Registry. In both registries, my username is **sample-stack**, so my scope is also **sample-stack**.
507
+
508
+ Using packages without a scope, we can easily have naming conflicts with other person packages. For example, we can not create a package named jquery on npm because it already exists.
509
+
510
+ When we use scoped packages, naming is not a problem because we are naming packages inside our scope.
511
+
512
+ If I were creating a new scoped package called **core**, its name in the **package.json** file would be **@sample-stack/core**.
513
+
514
+ ## Advance lerna tutorial
515
+
516
+ https://www.youtube.com/watch?v=WD5T-VMCTvY
@@ -0,0 +1,95 @@
1
+ ---
2
+ meta:
3
+ title: Lerna Yarn Workspaces
4
+ description: Lerna Yarn Workspaces
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Lerna Yarn Workspaces...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Lerna Yarn Workspaces
13
+
14
+ ## Introduction
15
+
16
+ [Yarn Workspaces](https://classic.yarnpkg.com/en/docs/workspaces/) allow us to run `yarn install` only once, although we have several packages. Yarn uses a single lock file rather than a different one for each project, which means fewer conflicts. Once all the dependencies are installed together, Yarn can better optimize them. Its most important feature is that when we have one package depending on another package of our repository, yarn link them together, allowing us to use always the most up-to-date code available.
17
+
18
+ ## Yarn & Yarn Workspaces
19
+
20
+ ### Set up yarn
21
+
22
+ To configure Lerna to use yarn under the hood, we need to go to the **lerna.json** file and add the **npmClient** key with the value `yarn`. Its value is `npm` by default.
23
+
24
+ ```json[lerna.json]
25
+ {
26
+ "packages": [
27
+ "packages/*",
28
+ ],
29
+ "version": "0.0.0",
30
+ "npmClient": "yarn"
31
+ }
32
+ ```
33
+
34
+ ### Set up yarn workspaces
35
+
36
+ To configure Lerna to use Yarn Workspaces, first, we need to [Set up yarn](#set-up-yarn). Then we have to configure it in the **lerna.json** and **package.json** files.
37
+
38
+ To do so, let's use the following folder structure as an example:
39
+
40
+ ```bash
41
+ fullstack-pro
42
+ ├── packages
43
+ │   ├── sample-core/
44
+ │   ├── sample-platform/
45
+ │   │   ├── browser
46
+ │   │   └── server/
47
+ │ ...
48
+ ├── portable-devices
49
+ │   └── desktop
50
+ │   └── mobile
51
+ ├── packages-modules
52
+ │   └── counter
53
+ │   │ ├── browser/
54
+ │   │ └── server/
55
+ ├── servers
56
+ │   ├── backend-server/
57
+ │   ├── frontend-server/
58
+ │ ...
59
+ |── package.json
60
+ └── lerna.json
61
+ ```
62
+
63
+ In the **package.json** file, we add the **workspaces** key with a list of globs that indicates the folders where we want to store our packages.
64
+
65
+ ```json[package.json]
66
+ {
67
+ "name": "root",
68
+ "private": true,
69
+ "workspaces": [
70
+ "packages": [
71
+ "portable-devices/*",
72
+ "packages-modules/**",
73
+ "packages/**",
74
+ "servers/*"
75
+ ]
76
+ ],
77
+ "devDependencies": {
78
+ "lerna": "^3.22.1"
79
+ }
80
+ }
81
+ ```
82
+
83
+ In the **lerna.json** file, we can remove the **packages** key because the **workspaces** key in the **package.json** file overrides it. We also need to add the **useWorkspaces** key with the value `true`.
84
+
85
+ ```json[lerna.json]
86
+ {
87
+ "version": "0.0.0",
88
+ "npmClient": "yarn",
89
+ "useWorkspaces": true
90
+ }
91
+ ```
92
+
93
+ ### Lerna
94
+
95
+ - [Getting Started with lerna](./lerna-build-tools.md)
@@ -0,0 +1,20 @@
1
+ ---
2
+ meta:
3
+ title: Lint and Formatter
4
+ description: Lint and Formatter
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Lint and Formatter...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ ## Lint and Formatter
13
+
14
+ `eslint` and `prettier` is used along each other. `eslint-config-airbnb-base` (not `eslint-config-airbnb`, which includes `jsx` rules) is used as well. [`eslint-plugin-jest`](https://github.com/jest-community/eslint-plugin-jest/issues) and [`eslint-plugin-markdown`](https://github.com/eslint/eslint-plugin-markdown) (not for markdown itself, but for code block snippet appeared in markdown) are also configured.
15
+
16
+ By configuring `overrides` in `.eslintrc.js`, both of typescript and javascript files are able to be linted by `eslint`. (e.g. So typescript rules are not applied to `.js` files.)
17
+
18
+ [`markdownlint`](https://github.com/DavidAnson/markdownlint) is configured by [`markdownlint-cli`](https://github.com/igorshubovych/markdownlint-cli#readme).
19
+
20
+ [`commitlint`](https://github.com/conventional-changelog/commitlint) is used as commit message linter. You can `yarn lint:md .`, for example. Refer to [conventional commits](https://www.conventionalcommits.org/en/) for more details.
@@ -0,0 +1,16 @@
1
+ ---
2
+ meta:
3
+ title: Mobile Setup
4
+ description: Mobile Setup
5
+ date: '2023-06-02T00:00:00'
6
+ updated: '2024-06-02T00:00:00'
7
+ excerpt: Mobile Setup...
8
+ headers:
9
+ Cache-Control: no-cache
10
+ ---
11
+
12
+ # Debugging
13
+
14
+ Follow Expo document on using [react-native-debugger](https://docs.expo.dev/workflow/debugging/#react-native-debugger)
15
+
16
+ The debugger also enables apollo-client devtools.