@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.
- package/LICENSE +21 -0
- package/lib/components/Logo.d.ts +4 -0
- package/lib/components/Logo.d.ts.map +1 -0
- package/lib/components/Logo.js +16 -0
- package/lib/components/Logo.js.map +1 -0
- package/lib/components/help/SidebarSearch.d.ts +8 -0
- package/lib/components/help/SidebarSearch.d.ts.map +1 -0
- package/lib/components/help/SidebarSearch.js +111 -0
- package/lib/components/help/SidebarSearch.js.map +1 -0
- package/lib/components/help/index.d.ts +2 -0
- package/lib/components/help/index.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.d.ts +13 -0
- package/lib/components/landing/FeatureCard.d.ts.map +1 -0
- package/lib/components/landing/FeatureCard.js +85 -0
- package/lib/components/landing/FeatureCard.js.map +1 -0
- package/lib/components/landing/QuickLinkCard.d.ts +8 -0
- package/lib/components/landing/QuickLinkCard.d.ts.map +1 -0
- package/lib/components/landing/QuickLinkCard.js +26 -0
- package/lib/components/landing/QuickLinkCard.js.map +1 -0
- package/lib/components/landing/SearchInput.d.ts +10 -0
- package/lib/components/landing/SearchInput.d.ts.map +1 -0
- package/lib/components/landing/SearchInput.js +223 -0
- package/lib/components/landing/SearchInput.js.map +1 -0
- package/lib/components/landing/index.d.ts +4 -0
- package/lib/components/landing/index.d.ts.map +1 -0
- package/lib/components/welcome.d.ts +3 -0
- package/lib/components/welcome.d.ts.map +1 -0
- package/lib/compute.d.ts +4 -0
- package/lib/compute.d.ts.map +1 -0
- package/lib/compute.js +96 -0
- package/lib/compute.js.map +1 -0
- package/lib/config/env-config.d.ts +4 -0
- package/lib/config/env-config.d.ts.map +1 -0
- package/lib/config/env-config.js +7 -0
- package/lib/config/env-config.js.map +1 -0
- package/lib/docs.config.d.ts +48 -0
- package/lib/docs.config.d.ts.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -0
- package/lib/loaders/search.d.ts +1 -0
- package/lib/loaders/search.d.ts.map +1 -0
- package/lib/module.d.ts +4 -0
- package/lib/module.d.ts.map +1 -0
- package/lib/module.js +11 -0
- package/lib/module.js.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts +4 -0
- package/lib/pages/ArticlePage/ArticlePage.d.ts.map +1 -0
- package/lib/pages/ArticlePage/ArticlePage.js +222 -0
- package/lib/pages/ArticlePage/ArticlePage.js.map +1 -0
- package/lib/pages/ArticlePage/index.d.ts +3 -0
- package/lib/pages/ArticlePage/index.d.ts.map +1 -0
- package/lib/pages/ArticlePage/index.js +3 -0
- package/lib/pages/ArticlePage/index.js.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts +4 -0
- package/lib/pages/CategoryCollection/CategoryCollection.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js +103 -0
- package/lib/pages/CategoryCollection/CategoryCollection.js.map +1 -0
- package/lib/pages/CategoryCollection/index.d.ts +3 -0
- package/lib/pages/CategoryCollection/index.d.ts.map +1 -0
- package/lib/pages/CategoryCollection/index.js +3 -0
- package/lib/pages/CategoryCollection/index.js.map +1 -0
- package/lib/pages/Help/HelpIndex.d.ts +4 -0
- package/lib/pages/Help/HelpIndex.d.ts.map +1 -0
- package/lib/pages/Help/HelpIndex.js +44 -0
- package/lib/pages/Help/HelpIndex.js.map +1 -0
- package/lib/pages/Help/index.d.ts +4 -0
- package/lib/pages/Help/index.d.ts.map +1 -0
- package/lib/pages/Help/index.js +226 -0
- package/lib/pages/Help/index.js.map +1 -0
- package/lib/pages/Landing/index.d.ts +3 -0
- package/lib/pages/Landing/index.d.ts.map +1 -0
- package/lib/pages/Landing/index.js +281 -0
- package/lib/pages/Landing/index.js.map +1 -0
- package/lib/routes.json +2533 -0
- package/lib/seo.d.ts +22 -0
- package/lib/seo.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.d.ts +3 -0
- package/lib/slot-fill/FooterFill.d.ts.map +1 -0
- package/lib/slot-fill/FooterFill.js +18 -0
- package/lib/slot-fill/FooterFill.js.map +1 -0
- package/lib/slot-fill/LogoFill.d.ts +5 -0
- package/lib/slot-fill/LogoFill.d.ts.map +1 -0
- package/lib/slot-fill/LogoFill.js +74 -0
- package/lib/slot-fill/LogoFill.js.map +1 -0
- package/lib/slot-fill/consts.d.ts +5 -0
- package/lib/slot-fill/consts.d.ts.map +1 -0
- package/lib/slot-fill/consts.js +1 -0
- package/lib/slot-fill/consts.js.map +1 -0
- package/lib/slot-fill/index.d.ts +4 -0
- package/lib/slot-fill/index.d.ts.map +1 -0
- package/lib/templates/assets/images/add-link-frontend.png +0 -0
- package/lib/templates/assets/images/add-package-backend.png +0 -0
- package/lib/templates/assets/images/add-to-backend-module.png +0 -0
- package/lib/templates/assets/images/add-upload-client-frontend.png +0 -0
- package/lib/templates/assets/images/additional-parameters.png +0 -0
- package/lib/templates/assets/images/aeh-implementation.png +0 -0
- package/lib/templates/assets/images/aeh-usage.png +0 -0
- package/lib/templates/assets/images/apollo-client/recommendation_cache_mgmt.png +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins1.PNG +0 -0
- package/lib/templates/assets/images/app-deploy-new-version/jenkins2.PNG +0 -0
- package/lib/templates/assets/images/auth-wrapper-code.png +0 -0
- package/lib/templates/assets/images/cdebase.png +0 -0
- package/lib/templates/assets/images/cdm-locales-directory.png +0 -0
- package/lib/templates/assets/images/client-settings.png +0 -0
- package/lib/templates/assets/images/codegen_file_update.png +0 -0
- package/lib/templates/assets/images/configuration.png +0 -0
- package/lib/templates/assets/images/copy-plugin.png +0 -0
- package/lib/templates/assets/images/docusaurus.png +0 -0
- package/lib/templates/assets/images/error-link.png +0 -0
- package/lib/templates/assets/images/error-sample.png +0 -0
- package/lib/templates/assets/images/extension copy.png +0 -0
- package/lib/templates/assets/images/extension.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-backend.png +0 -0
- package/lib/templates/assets/images/graphql/graphql-folder-with-gql.png +0 -0
- package/lib/templates/assets/images/i18n-config.png +0 -0
- package/lib/templates/assets/images/image.png +0 -0
- package/lib/templates/assets/images/logo.svg +10 -0
- package/lib/templates/assets/images/logo1.svg +1 -0
- package/lib/templates/assets/images/modify-upload-false-server.png +0 -0
- package/lib/templates/assets/images/navigation-auth-enabled.png +0 -0
- package/lib/templates/assets/images/org-dashboard-navigation.png +0 -0
- package/lib/templates/assets/images/org-navigation.png +0 -0
- package/lib/templates/assets/images/preferences_graphql_type.png +0 -0
- package/lib/templates/assets/images/provider.png +0 -0
- package/lib/templates/assets/images/route-config.png +0 -0
- package/lib/templates/assets/images/service-accounts.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-environments.png +0 -0
- package/lib/templates/assets/images/source-code/source-code-organization.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/jenkins-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/lerna-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/root-package-json-changes.png +0 -0
- package/lib/templates/assets/images/spin-clone-develop-deployment/values-dev-changes.png +0 -0
- package/lib/templates/assets/images/sso-mappers.png +0 -0
- package/lib/templates/assets/images/sso-picture-mapper.png +0 -0
- package/lib/templates/assets/images/sso-settings.png +0 -0
- package/lib/templates/assets/images/timesheet_apollo_cache.png +0 -0
- package/lib/templates/assets/images/timesheet_query.png +0 -0
- package/lib/templates/assets/images/tutorial/docsVersionDropdown.png +0 -0
- package/lib/templates/assets/images/tutorial/localeDropdown.png +0 -0
- package/lib/templates/assets/images/unauthenticated.png +0 -0
- package/lib/templates/assets/images/undraw_docusaurus_mountain.svg +170 -0
- package/lib/templates/assets/images/undraw_docusaurus_react.svg +169 -0
- package/lib/templates/assets/images/undraw_docusaurus_tree.svg +1 -0
- package/lib/templates/assets/images/vite-plugin-config.png +0 -0
- package/lib/templates/content/docs/Generators/Project/generate-fullproject.md +12 -0
- package/lib/templates/content/docs/LLM/Logger.llm.md +194 -0
- package/lib/templates/content/docs/LLM/backend-proxies-services-llm.md +2687 -0
- package/lib/templates/content/docs/LLM/backend-service-llm.md +3384 -0
- package/lib/templates/content/docs/LLM/db_migration_llm.md +954 -0
- package/lib/templates/content/docs/LLM/frontend/REMIX-15.3-upgrade-llm.md +1245 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_FUNCTION_DEVELOPMENT_GUIDE_LLM.md +1241 -0
- package/lib/templates/content/docs/LLM/inngest/INNGEST_NAMESPACE_LLM.md +384 -0
- package/lib/templates/content/docs/LLM/llm_workflow_namespace.md +384 -0
- package/lib/templates/content/docs/LLM/organization-components-form-llm.md +1395 -0
- package/lib/templates/content/docs/LLM/page-component-llm.md +173 -0
- package/lib/templates/content/docs/LLM/preferences-settings-llm.md +2781 -0
- package/lib/templates/content/docs/LLM/tailwind-css-llm.md +502 -0
- package/lib/templates/content/docs/UI/SchemaBasedUI.md +334 -0
- package/lib/templates/content/docs/UI/SlotFillComponent.md +334 -0
- package/lib/templates/content/docs/adminide-modules/account/auth0-login.md +31 -0
- package/lib/templates/content/docs/adminide-modules/account/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/account/keycloak-remix-setup.md +86 -0
- package/lib/templates/content/docs/adminide-modules/account/remix-auth-setup.md +79 -0
- package/lib/templates/content/docs/adminide-modules/account/various-auth-qatest.md +157 -0
- package/lib/templates/content/docs/adminide-modules/api-builders/graphql.md +906 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/index.md +14 -0
- package/lib/templates/content/docs/adminide-modules/billing/payments/stripe/settingup-stripe-locally.md +25 -0
- package/lib/templates/content/docs/adminide-modules/billing/tier-config.md +293 -0
- package/lib/templates/content/docs/adminide-modules/connectors/Connector.md +207 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/index.md +16 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/setup.md +435 -0
- package/lib/templates/content/docs/adminide-modules/file-upload/upload-file-using-signed-url.md +161 -0
- package/lib/templates/content/docs/adminide-modules/preferences/AddAdditionalPermissions.md +151 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Configuration.md +241 -0
- package/lib/templates/content/docs/adminide-modules/preferences/Policy-Configuration.md +61 -0
- package/lib/templates/content/docs/adminide-modules/preferences/UI-components/ResourceSettingsLoader.md +319 -0
- package/lib/templates/content/docs/adminide-modules/preferences/contribute_scope_target.md +280 -0
- package/lib/templates/content/docs/adminide-modules/preferences/generate-urii.md +94 -0
- package/lib/templates/content/docs/adminide-modules/preferences/index.md +28 -0
- package/lib/templates/content/docs/adminide-modules/preferences/machine-configuration.md +157 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/generateCdecodeUri.md +1289 -0
- package/lib/templates/content/docs/adminide-modules/preferences/pageSettings/migratingFromUseSettings.md +215 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/Roles-Permissions.md +72 -0
- package/lib/templates/content/docs/adminide-modules/preferences/permissions/settingUserPermissions.md +139 -0
- package/lib/templates/content/docs/adminide-modules/preferences/preference-dependency.md +138 -0
- package/lib/templates/content/docs/adminide-modules/preferences/route-based-configuration.md +41 -0
- package/lib/templates/content/docs/adminide-modules/preferences/schema-configuration.md +71 -0
- package/lib/templates/content/docs/adminide-modules/preferences/supported.md +24 -0
- package/lib/templates/content/docs/adminide-modules/preferences/useSettingsLoader.md +248 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/auth-providers.md +1317 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/keycloak-guide.md +543 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-based-authentication.md +846 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenant-management.md +708 -0
- package/lib/templates/content/docs/adminide-modules/project-tools/tenant-management/tenants.md +1117 -0
- package/lib/templates/content/docs/chrome-extension/index.md +14 -0
- package/lib/templates/content/docs/chrome-extension/setup.md +30 -0
- package/lib/templates/content/docs/contributing/adding-package.md +23 -0
- package/lib/templates/content/docs/contributing/adding_new_modules.md +99 -0
- package/lib/templates/content/docs/contributing/architecture-updates.md +19 -0
- package/lib/templates/content/docs/contributing/avoid-using-promises-ui.md +116 -0
- package/lib/templates/content/docs/contributing/coding-guidelines.md +111 -0
- package/lib/templates/content/docs/contributing/do-and-dont.md +42 -0
- package/lib/templates/content/docs/contributing/faq.md +22 -0
- package/lib/templates/content/docs/contributing/folder-setup/browser.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/config.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/containers-server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/core.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/graphql.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/index.md +30 -0
- package/lib/templates/content/docs/contributing/folder-setup/module.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/server.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/services.md +12 -0
- package/lib/templates/content/docs/contributing/folder-setup/store.md +12 -0
- package/lib/templates/content/docs/contributing/frontend-coding.md +30 -0
- package/lib/templates/content/docs/contributing/git-subtree-sharing.md +73 -0
- package/lib/templates/content/docs/contributing/graphql-subscriptions.md +69 -0
- package/lib/templates/content/docs/contributing/how-to-contribute.md +30 -0
- package/lib/templates/content/docs/contributing/how_to_check_pure_esm.md +29 -0
- package/lib/templates/content/docs/contributing/index.md +60 -0
- package/lib/templates/content/docs/contributing/installation-issues.md +23 -0
- package/lib/templates/content/docs/contributing/keyboard-shortcut.md +131 -0
- package/lib/templates/content/docs/contributing/language/locale-support.md +12 -0
- package/lib/templates/content/docs/contributing/lerna-build-tools.md +516 -0
- package/lib/templates/content/docs/contributing/lerna-yarn-workspaces.md +95 -0
- package/lib/templates/content/docs/contributing/lint-and-formatter.md +20 -0
- package/lib/templates/content/docs/contributing/mobile-setup.md +16 -0
- package/lib/templates/content/docs/contributing/project-setup.md +233 -0
- package/lib/templates/content/docs/contributing/react/index.md +14 -0
- package/lib/templates/content/docs/contributing/react/lazy-component.md +70 -0
- package/lib/templates/content/docs/contributing/run-various-options.md +124 -0
- package/lib/templates/content/docs/contributing/schema-first-graphql-types.md +37 -0
- package/lib/templates/content/docs/contributing/source-code-organization.md +57 -0
- package/lib/templates/content/docs/contributing/staging-docker.md +88 -0
- package/lib/templates/content/docs/contributing/third-party/apollo-client-v3-tutorials.md +28 -0
- package/lib/templates/content/docs/contributing/third-party/index.md +18 -0
- package/lib/templates/content/docs/contributing/typescript-contribution.md +16 -0
- package/lib/templates/content/docs/devops/app-deploy-new-version.md +30 -0
- package/lib/templates/content/docs/devops/index.md +14 -0
- package/lib/templates/content/docs/devops/mobile-jenkins-build.md +40 -0
- package/lib/templates/content/docs/devops/versioning-the-project.md +128 -0
- package/lib/templates/content/docs/error-handler/application-error-handler.md +40 -0
- package/lib/templates/content/docs/error-handler/error-handling.md +26 -0
- package/lib/templates/content/docs/error-handler/index.md +16 -0
- package/lib/templates/content/docs/error-handler/logging-errors.md +14 -0
- package/lib/templates/content/docs/feature-api/copy-operation.md +427 -0
- package/lib/templates/content/docs/feature-api/feature-browser/assets.md +46 -0
- package/lib/templates/content/docs/feature-api/feature-browser/auth-permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-browser/feature.md +131 -0
- package/lib/templates/content/docs/feature-api/feature-browser/index.md +22 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routes-menu.md +110 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing-convention.md +124 -0
- package/lib/templates/content/docs/feature-api/feature-browser/routing.md +338 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/auth-permissions.md +20 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/feature.md +130 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/index.md +18 -0
- package/lib/templates/content/docs/feature-api/feature-mobile/navigation.md +187 -0
- package/lib/templates/content/docs/feature-api/feature-server/Scheduling.md +44 -0
- package/lib/templates/content/docs/feature-api/feature-server/dataloader.md +320 -0
- package/lib/templates/content/docs/feature-api/feature-server/dependency-injection.md +81 -0
- package/lib/templates/content/docs/feature-api/feature-server/feature.md +65 -0
- package/lib/templates/content/docs/feature-api/feature-server/generic-dataloader.md +135 -0
- package/lib/templates/content/docs/feature-api/feature-server/index.md +40 -0
- package/lib/templates/content/docs/feature-api/feature-server/migration.md +127 -0
- package/lib/templates/content/docs/feature-api/feature-server/mongo-model.md +72 -0
- package/lib/templates/content/docs/feature-api/feature-server/permissions.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/policies.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/preferences.md +57 -0
- package/lib/templates/content/docs/feature-api/feature-server/repositories.md +114 -0
- package/lib/templates/content/docs/feature-api/feature-server/resolvers.md +126 -0
- package/lib/templates/content/docs/feature-api/feature-server/rules.md +132 -0
- package/lib/templates/content/docs/feature-api/feature-server/schema.md +12 -0
- package/lib/templates/content/docs/feature-api/feature-server/services.md +102 -0
- package/lib/templates/content/docs/feature-api/feature-server/setup-resource-crud.md +359 -0
- package/lib/templates/content/docs/feature-api/index.md +18 -0
- package/lib/templates/content/docs/graphql/apolloClient-mutation.md +94 -0
- package/lib/templates/content/docs/graphql/index.md +14 -0
- package/lib/templates/content/docs/graphql/scalars.md +15 -0
- package/lib/templates/content/docs/help/index.md +14 -0
- package/lib/templates/content/docs/help/intro.md +16 -0
- package/lib/templates/content/docs/intl/ant-design-menu-translation.md +74 -0
- package/lib/templates/content/docs/intl/intl-namespace.md +129 -0
- package/lib/templates/content/docs/intl/vite-plugin-intl.md +87 -0
- package/lib/templates/content/docs/intl/webpack-plugin-intl.md +12 -0
- package/lib/templates/content/docs/intro.md +18 -0
- package/lib/templates/content/docs/knowledge/basic-fullstack.md +238 -0
- package/lib/templates/content/docs/mailing/index.md +14 -0
- package/lib/templates/content/docs/mailing/mailing-template.md +148 -0
- package/lib/templates/content/docs/mobile/App-navigation-generator.md +410 -0
- package/lib/templates/content/docs/mobile/MobileTestCases.md +264 -0
- package/lib/templates/content/docs/mobile/eas-profile-build.md +107 -0
- package/lib/templates/content/docs/mobile/expo-push-notification-setup.md +216 -0
- package/lib/templates/content/docs/mobile/index.md +14 -0
- package/lib/templates/content/docs/mobile/routes.md +83 -0
- package/lib/templates/content/docs/organization/adding-account-context.md +116 -0
- package/lib/templates/content/docs/organization/adding-org-mobile-navigation.md +22 -0
- package/lib/templates/content/docs/organization/adding-org-web-navigation.md +12 -0
- package/lib/templates/content/docs/organization/index.md +20 -0
- package/lib/templates/content/docs/organization/initialization.md +20 -0
- package/lib/templates/content/docs/organization/organization-resource-vs-resource.md +112 -0
- package/lib/templates/content/docs/remix/configuration/component-structure-best-practices.md +152 -0
- package/lib/templates/content/docs/remix/configuration/configurations.md +218 -0
- package/lib/templates/content/docs/remix/configuration/css-import-and-stylesheets.md +142 -0
- package/lib/templates/content/docs/remix/configuration/dont-subcomponent-network.md +166 -0
- package/lib/templates/content/docs/remix/configuration/generated-data-loaders.md +122 -0
- package/lib/templates/content/docs/remix/configuration/generated-resource-loaders.md +257 -0
- package/lib/templates/content/docs/remix/configuration/query-params-generator.md +216 -0
- package/lib/templates/content/docs/remix/configuration/routes-extra-icons.md +103 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-advanced.md +86 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-auth.md +113 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-best-practices.md +55 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-fields.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-graphql.md +79 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-index.md +112 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-loaders.md +165 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-middleware.md +196 -0
- package/lib/templates/content/docs/remix/configuration/routes-json-overview.md +53 -0
- package/lib/templates/content/docs/remix/data-loaders.md +43 -0
- package/lib/templates/content/docs/remix/devtools/remix-devtools.md +58 -0
- package/lib/templates/content/docs/remix/examples/changes-using-servercode.md +79 -0
- package/lib/templates/content/docs/remix/extra-icons.md +62 -0
- package/lib/templates/content/docs/remix/extra-links.md +65 -0
- package/lib/templates/content/docs/remix/generated-data-loaders.md +114 -0
- package/lib/templates/content/docs/remix/queryParamsGenerator.md +89 -0
- package/lib/templates/content/docs/remix/resources.md +16 -0
- package/lib/templates/content/docs/remix/styles.md +132 -0
- package/lib/templates/content/docs/remix/wiki.md +12 -0
- package/lib/templates/content/docs/security/auth-wrapper/auth-wrapper.md +24 -0
- package/lib/templates/content/docs/security/index.md +18 -0
- package/lib/templates/content/docs/security/secure-button-mobilenative.md +88 -0
- package/lib/templates/content/docs/security/secure-button-web.md +89 -0
- package/lib/templates/content/docs/server-side/account-customization.md +82 -0
- package/lib/templates/content/docs/server-side/apollo/caching.md +164 -0
- package/lib/templates/content/docs/server-side/backend-architecture/FINAL-DECISION.md +209 -0
- package/lib/templates/content/docs/server-side/backend-architecture/TRUE-FINAL-ARCHITECTURE.md +603 -0
- package/lib/templates/content/docs/server-side/backend-architecture/index1.md +0 -0
- package/lib/templates/content/docs/server-side/backend-coding.md +839 -0
- package/lib/templates/content/docs/server-side/e2b/manageing-template.md +197 -0
- package/lib/templates/content/docs/server-side/index.md +14 -0
- package/lib/templates/content/docs/server-side/inngest-functions-module.md +309 -0
- package/lib/templates/content/docs/server-side/listen-stripe-events.md +43 -0
- package/lib/templates/content/docs/server-side/slug-service.md +323 -0
- package/lib/templates/content/docs/tests/index.md +18 -0
- package/lib/templates/content/docs/tests/jest-test-debug-vscode.md +40 -0
- package/lib/templates/content/docs/tests/known-errors.md +116 -0
- package/lib/templates/content/docs/tests/service-test-template.md +118 -0
- package/lib/templates/content/docs/tests/test-setup.md +93 -0
- package/lib/templates/content/docs/xstate.md +23 -0
- package/lib/types.d.ts +37 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/utils/docsNavigation.d.ts +9 -0
- package/lib/utils/docsNavigation.d.ts.map +1 -0
- package/lib/utils/docsNavigation.js +37 -0
- package/lib/utils/docsNavigation.js.map +1 -0
- package/lib/utils/helpCenterUtils.d.ts +26 -0
- package/lib/utils/helpCenterUtils.d.ts.map +1 -0
- package/lib/utils/index.d.ts +3 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +3 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/markdownLoader.d.ts +36 -0
- package/lib/utils/markdownLoader.d.ts.map +1 -0
- package/lib/utils/markdownLoader.js +2242 -0
- package/lib/utils/markdownLoader.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Eas Profile Build
|
|
4
|
+
description: Eas Profile Build
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Eas Profile Build...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Eas Profile Build
|
|
13
|
+
|
|
14
|
+
1. List the devices and if the device don't exist add the device usinge `eas device:create`
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
lerna exec --scope="*mobile-device" "eas device:create"
|
|
18
|
+
lerna notice cli v6.6.2
|
|
19
|
+
lerna notice filter including "*mobile-device"
|
|
20
|
+
lerna info filter [ '*mobile-device' ]
|
|
21
|
+
lerna info Executing command in 1 package: "eas device:create"
|
|
22
|
+
★ eas-cli@10.2.2 is now available.
|
|
23
|
+
To upgrade, run npm install -g eas-cli.
|
|
24
|
+
Proceeding with outdated version.
|
|
25
|
+
|
|
26
|
+
This command lets you register your Apple devices (iPhones, iPads and Macs) for internal distribution of your app.
|
|
27
|
+
Internal distribution means that you won't need to upload your app archive to App Store / Testflight.
|
|
28
|
+
Your app archive (.ipa) will be installable on your equipment as long as you sign your application with an adhoc provisioning profile.
|
|
29
|
+
The provisioning profile needs to contain the UDIDs (unique identifiers) of your iPhones, iPads and Macs.
|
|
30
|
+
|
|
31
|
+
First of all, choose the Expo account under which you want to register your devices.
|
|
32
|
+
Later, authenticate with Apple and choose your desired Apple Team (if your Apple ID has access to multiple teams).
|
|
33
|
+
|
|
34
|
+
✔ You're inside the project directory. Would you like to use the XXXXXX account? … yes
|
|
35
|
+
› Log in to your Apple Developer account to continue
|
|
36
|
+
✔ Apple ID: … xxxxx@xxxxx.com
|
|
37
|
+
› Restoring session /Users/xxxx/.app-store/auth/xxxxx@xxxxx.com/cookie
|
|
38
|
+
› Team XXXX LLC (XXXXX)
|
|
39
|
+
› Provider XXXX LLC (XXXXX)
|
|
40
|
+
✔ Logged in Local session
|
|
41
|
+
? How would you like to register your devices? › - Use arrow-keys. Return to submit.
|
|
42
|
+
❯ Website - generates a registration URL to be opened on your devices
|
|
43
|
+
Developer Portal - import devices already registered on Apple Developer Portal
|
|
44
|
+
Input - allows you to type in UDIDs (advanced option)
|
|
45
|
+
Current Machine - automatically sets the provisioning UDID of the current Apple Silicon machine
|
|
46
|
+
Exit
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
2. move `.npmrc` to `.npmrc.bk` from root of the project, so the eas build wont' see this file.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
mv .npmrc .npmrc.bk
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. run eas preview manually from the IDE
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
lerna exec --scope="*mobile-device" yarn build:preview
|
|
59
|
+
lerna notice cli v6.6.2
|
|
60
|
+
lerna notice filter including "*mobile-device"
|
|
61
|
+
lerna info filter [ '*mobile-device' ]
|
|
62
|
+
lerna info Executing command in 1 package: "yarn build:preview"
|
|
63
|
+
yarn run v1.22.19
|
|
64
|
+
$ yarn easBuild --profile preview
|
|
65
|
+
$ eas build --profile preview
|
|
66
|
+
★ eas-cli@10.1.1 is now available.
|
|
67
|
+
To upgrade, run npm install -g eas-cli.
|
|
68
|
+
Proceeding with outdated version.
|
|
69
|
+
|
|
70
|
+
✔ Select platform › iOS
|
|
71
|
+
Loaded "env" configuration for the "preview" profile: NODE_ENV, GRAPHQL_URL, GA_ID, LOG_LEVEL, CLIENT_URL, APP_NAME, AUTH0_DOMAIN, AUTH0_CUSTOM_DOMAIN, AUTH0_API_AUDIENCE, AUTH0_REALM, AUTH0_CLIENT_ID, AUTH0_NATIVE_CLIENT_ID, AUTH0_CUSTOM_CLAIMS_NAMESPACE, AUTH0_TOKEN_GRANTED_TIME, LOGOUT_REDIRECT_PATH, HOME_SCREEN_PATH, DISABLE_EMAIL_VERIFICATION, LAYOUT_SETTINGS, SOCIAL_LOGIN_PROVIDERS. Learn more
|
|
72
|
+
✔ Using remote iOS credentials (Expo server)
|
|
73
|
+
|
|
74
|
+
If you provide your Apple account credentials we will be able to generate all necessary build credentials and fully validate them.
|
|
75
|
+
This is optional, but without Apple account access you will need to provide all the missing values manually and we can only run minimal validation on them.
|
|
76
|
+
✔ Do you want to log in to your Apple account? … yes
|
|
77
|
+
|
|
78
|
+
› Log in to your Apple Developer account to continue
|
|
79
|
+
✔ Apple ID: … xxxxxx@xxxxx.com
|
|
80
|
+
› Restoring session /Users/xxxxxx/.app-store/auth/xxxxx@xxxxx.com/cookie
|
|
81
|
+
› Session expired Local session
|
|
82
|
+
› Using password for xxxxx@xxxxx.com from your local Keychain
|
|
83
|
+
Learn more
|
|
84
|
+
✔ Logged in, verify your Apple account to continue
|
|
85
|
+
Two-factor Authentication (6 digit code) is enabled for xxxxxx@xxxx.com. Learn more: https://support.apple.com/en-us/HT204915
|
|
86
|
+
|
|
87
|
+
✔ How do you want to validate your account? … device / sms
|
|
88
|
+
✔ Please select a trusted phone number to send code to › +1 (•••) •••-••xx
|
|
89
|
+
✔ Please enter the 6 digit code you received at +1 (•••) •••-••xx: … 219070
|
|
90
|
+
✔ Valid code
|
|
91
|
+
✔ Logged in and verified
|
|
92
|
+
› Team XXXXX (XXXXXXXX)
|
|
93
|
+
› Provider XXXXX (XXXXXXX)
|
|
94
|
+
✔ Bundle identifier registered com.xxxxxx
|
|
95
|
+
✔ Synced capabilities: Enabled: Sign In with Apple
|
|
96
|
+
✔ Synced capability identifiers: No updates
|
|
97
|
+
✔ Fetched Apple distribution certificates
|
|
98
|
+
✔ Fetched Apple provisioning profiles
|
|
99
|
+
Provisioning profile (id: XXXXXXX) is no longer valid
|
|
100
|
+
✔ Select devices for the ad hoc build: › 4 devices selected
|
|
101
|
+
✔ Updated existing profile: *[expo] com.xxxxx AdHoc 17xxxxxxx0
|
|
102
|
+
|
|
103
|
+
Project Credentials Configuration
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
4. Revert back the file `.npmrc` from `.nprc.bk` do not commit this change.
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Expo push notification setup
|
|
4
|
+
description: Expo push notification setup
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Expo push notification setup...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Expo push notification setup:
|
|
13
|
+
|
|
14
|
+
To use Expo's push notification service, you need to configure your app to install a set of libraries, add functions to handle notifications and configure credentials for Android and iOS.
|
|
15
|
+
|
|
16
|
+
(Note: notification only works on device , not on emulator/simulator)
|
|
17
|
+
|
|
18
|
+
# Install libraries
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
npx expo install expo-notifications expo-device
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
# After installation import on app start screen (i.e. App.js / index.js)
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
import { useState, useEffect, useRef } from 'react';
|
|
28
|
+
import { Platform } from 'react-native';
|
|
29
|
+
import * as Device from 'expo-device';
|
|
30
|
+
import * as Notifications from 'expo-notifications';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
# Set Notification handler at the top after import to display notification popup
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Notifications.setNotificationHandler({
|
|
37
|
+
handleNotification: async () => ({
|
|
38
|
+
shouldShowAlert: true, //if true , notification popup will appear
|
|
39
|
+
shouldPlaySound: false,
|
|
40
|
+
shouldSetBadge: false,
|
|
41
|
+
}),
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
# Register and get expo token , set listener for notification
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
export default function App() {
|
|
49
|
+
const [expoPushToken, setExpoPushToken] = useState('');
|
|
50
|
+
const [notification, setNotification] = useState(false);
|
|
51
|
+
const notificationListener = useRef();
|
|
52
|
+
const responseListener = useRef();
|
|
53
|
+
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
//Registering and getting exp token from registerForPushNotificationsAsync function and setting
|
|
56
|
+
registerForPushNotificationsAsync().then(token => setExpoPushToken(token));
|
|
57
|
+
//Notification listener when notification received
|
|
58
|
+
notificationListener.current=Notifications.addNotificationReceivedListener (notification =>
|
|
59
|
+
{ setNotification(notification); });
|
|
60
|
+
//Notification listener when notification clicked
|
|
61
|
+
responseListener.current = Notifications.addNotificationResponseReceivedListener(response =>
|
|
62
|
+
{ console.log(response); });
|
|
63
|
+
|
|
64
|
+
return () => {
|
|
65
|
+
Notifications.removeNotificationSubscription(notificationListener.current);
|
|
66
|
+
Notifications.removeNotificationSubscription(responseListener.current);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
}, []);
|
|
70
|
+
|
|
71
|
+
return (<><>)
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
# Token register function(function only works on device, not on simulator/emulator)
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
async function registerForPushNotificationsAsync() {
|
|
80
|
+
let token;
|
|
81
|
+
if (Device.isDevice) {
|
|
82
|
+
const { status: existingStatus } = await Notifications.getPermissionsAsync();
|
|
83
|
+
let finalStatus = existingStatus;
|
|
84
|
+
if (existingStatus !== 'granted') {
|
|
85
|
+
const { status } = await Notifications.requestPermissionsAsync();
|
|
86
|
+
finalStatus = status;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (finalStatus !== 'granted') {
|
|
90
|
+
alert('Failed to get push token for push notification!');
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
token = (await Notifications.getExpoPushTokenAsync()).data;
|
|
94
|
+
console.log(token); }
|
|
95
|
+
else {
|
|
96
|
+
alert('Must use physical device for Push Notifications');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (Platform.OS === 'android') {
|
|
100
|
+
Notifications.setNotificationChannelAsync('default', {
|
|
101
|
+
name: 'default',
|
|
102
|
+
importance: Notifications.AndroidImportance.MAX,
|
|
103
|
+
vibrationPattern: [0, 250, 250, 250],
|
|
104
|
+
lightColor: '#FF231F7C',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return token;
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
# For sending push notification to device
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
expoPushToken can be an array or single string
|
|
115
|
+
expoPushToken = ‘ExpoToken[xyz123456789ZY]’
|
|
116
|
+
or
|
|
117
|
+
expoPushToken = [‘‘ExpoToken[xyz123456789ZY]’,’‘ExpoToken[xyz123456789MZ]’]
|
|
118
|
+
|
|
119
|
+
async function sendPushNotification(expoPushToken) {
|
|
120
|
+
const message = {
|
|
121
|
+
to: expoPushToken,
|
|
122
|
+
sound: 'default',
|
|
123
|
+
title: 'Original Title', body: 'And here is the body!',
|
|
124
|
+
data: { someData: 'goes here' },
|
|
125
|
+
};
|
|
126
|
+
await fetch('https://exp.host/--/api/v2/push/send', {
|
|
127
|
+
method: 'POST',
|
|
128
|
+
headers: { Accept: 'application/json', 'Accept-encoding': 'gzip, deflate',
|
|
129
|
+
'Content-Type': 'application/json', },
|
|
130
|
+
body: JSON.stringify(message),
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Development setup done , you can test expo notification on local using Expo push notifications tool
|
|
136
|
+
|
|
137
|
+
Replace graphql and backend url localhost with your ip in env file , go to your app root ,start teminal/cmd and login with expo, remove –localhost from portable device mobile package.json from watch script and start app , Open device scanner,scan qr from terminal and test
|
|
138
|
+
|
|
139
|
+
(Note:while testing backend and device should be on same network (i.e. wifi)
|
|
140
|
+
|
|
141
|
+
# Credentials configuration for Android and iOS for development(.i.e testflight,android internal testing)/production
|
|
142
|
+
|
|
143
|
+
# For android
|
|
144
|
+
|
|
145
|
+
Expo uses firebase for sending push notification in android
|
|
146
|
+
|
|
147
|
+
# Setting up FCM
|
|
148
|
+
|
|
149
|
+
To create a Firebase project, go to the Firebase console and click on Add project.
|
|
150
|
+
|
|
151
|
+
In the console, click the setting icon next to Project overview and open Project settings. Then, under Your apps, click the Android icon to open Add Firebase to your Android app and follow the steps. Make sure that the Android package name you enter is the same as the value of android.package from your app.json.
|
|
152
|
+
|
|
153
|
+
After registering the app, download the google-services.json file and place it in your project's root directory.
|
|
154
|
+
|
|
155
|
+
In app.json, add an android.googleServicesFile field with the relative path to the downloaded google-services.json file. If you placed it in the root directory, the path is:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
app.json:
|
|
159
|
+
{
|
|
160
|
+
"android": {
|
|
161
|
+
"googleServicesFile": "./google-services.json",
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
# Upload server credentials for android
|
|
168
|
+
|
|
169
|
+
For Expo to send push notifications from expo servers and use your credentials, you'll have to upload your secret server key to your project's Expo dashboard.
|
|
170
|
+
|
|
171
|
+
In the Firebase console, next to Project overview, click gear icon to open Project settings.
|
|
172
|
+
|
|
173
|
+
Click on the Cloud Messaging tab in the Settings pane.
|
|
174
|
+
|
|
175
|
+
Copy the token listed next to the Server key.
|
|
176
|
+
|
|
177
|
+
If server key not found , then it is not enabled so for enabling go to Cloud Messaging API (Legacy) Console (google) and enable it
|
|
178
|
+
|
|
179
|
+
In your Expo account's dashboard, select your project, and click on Credentials in the navigation menu. Then, click on your Application Identifier that follows the pattern:com.company.app.
|
|
180
|
+
|
|
181
|
+
Under Service Credentials > FCM Server Key, click Add a FCM Server Key > Google Cloud Messaging Token and add the Server key
|
|
182
|
+
|
|
183
|
+
# For ios
|
|
184
|
+
|
|
185
|
+
Expo uses apple push notification service(apn) for sending push notification in ios
|
|
186
|
+
|
|
187
|
+
For iOS, make sure you have registered your iOS device on which you want to test before running
|
|
188
|
+
the eas build command
|
|
189
|
+
|
|
190
|
+
For registering ios device , ios device uuid is needed , get ios device uuid
|
|
191
|
+
|
|
192
|
+
. Go to apple developer console -> account -> Certificates, IDs & Profiles ->
|
|
193
|
+
. Devices -> click + button and add your uuid
|
|
194
|
+
. Profiles -> click on your profile(com.app.test.) -> edit and add your device to this profile and save
|
|
195
|
+
|
|
196
|
+
# If you create a development build for the first time, you'll be asked to enable push notifications. Answer yes to the following questions when prompted:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
Setup Push Notifications for your project
|
|
200
|
+
Generating a new Apple Push Notifications service key
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
# For existing build:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
. Go to apple developer console -> account -> Certificates, IDs & Profiles ->
|
|
207
|
+
. Devices -> click + button and add your uuid
|
|
208
|
+
. Profiles -> click on your profile(com.app.test.) -> edit and add your device to this profile and save
|
|
209
|
+
. Identifiers -> click on your identifier(com.app.test) -> check Push Notifications in capabilities and
|
|
210
|
+
configure(For notification to run upload new certificate for development and production)
|
|
211
|
+
. Keys -> click on + button to create key -> download created p8 file -> save
|
|
212
|
+
|
|
213
|
+
Now go to expo.dev -> your project -> Credentials -> click ios tab -> Bundle Identifiers (click your identifier) -> com.app.test -> edit Push Key -> Push Key File (upload your downloaded p8 file), Key Identifier(your key id) -> save
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Now notification can be tested on testflight
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Mobile
|
|
4
|
+
description: Mobile
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Mobile...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Mobile
|
|
13
|
+
|
|
14
|
+
**[With Orgname and Sider with Main Tab](/docs/mobile/routes)**
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Routes
|
|
4
|
+
description: Routes
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Routes...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## routes
|
|
13
|
+
|
|
14
|
+
# With Orgname and Sider with Main Tab
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/ - MainNavigator
|
|
18
|
+
/:orgName(screen)
|
|
19
|
+
/:orgName/MainDrawer
|
|
20
|
+
/Sider1
|
|
21
|
+
/Sider2
|
|
22
|
+
/BottomTab
|
|
23
|
+
/Tab1
|
|
24
|
+
/Tab2
|
|
25
|
+
/login
|
|
26
|
+
/password-reset
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Generated Component from above routes.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
<Stack name=“MainStack”>
|
|
33
|
+
<Stack.Screen name='orgSelection'/>
|
|
34
|
+
<Drawer.Navigator initialRouteName="Drawer">
|
|
35
|
+
<Drawer.Screen name="Sider1" component={Sider1} />
|
|
36
|
+
<Drawer.Screen name="Sider2" component={Sider2} />
|
|
37
|
+
<Tab.Navigator>
|
|
38
|
+
I <Tab.Screen name="Tab1" component={Tab1} />
|
|
39
|
+
<Tab.Screen name="Tab2" component={Tab2} />
|
|
40
|
+
</Tab.Navigator>
|
|
41
|
+
</Drawer.Navigator>
|
|
42
|
+
<Stack.Screen name='login' />
|
|
43
|
+
<Stack.Screen name='password-reset' />
|
|
44
|
+
</Stack>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
# With Orgname and Sider only
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
/ - Main Navigator(StackNavigator)
|
|
51
|
+
/:orgName(screen) -[//:orgName, exact: true] -> org selection page will open and orgname is selected, which will redirect to home
|
|
52
|
+
/:orgName/MainDrawer -[//:orgName/l/] MainStack.Drawer
|
|
53
|
+
/account -[//:orgName/l/account] MainStack.Drawer.Account
|
|
54
|
+
/home -[//:orgName/l/home] MainStack.Drawer.Home
|
|
55
|
+
/login
|
|
56
|
+
/password-reset
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Generated Component from above routes.
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
<Stack name=“MainStack”>
|
|
63
|
+
<Stack.Screen name='orgSelection'/>
|
|
64
|
+
<Drawer.Navigator initialRouteName="Drawer">
|
|
65
|
+
<Drawer.Screen name="Home" component={HomeScreen} />
|
|
66
|
+
<Drawer.Screen name="Account" component={AccountScreen} />
|
|
67
|
+
</Drawer.Navigator>
|
|
68
|
+
<Stack.Screen name='login' />
|
|
69
|
+
<Stack.Screen name='password-reset' />
|
|
70
|
+
</Stack>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
# Without orgName
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
/ - MainNavigator
|
|
77
|
+
/ -[//] -> this screen checks if user logged in, if logged it redirect to home screen
|
|
78
|
+
/MainDrawer -[//l]
|
|
79
|
+
/BottomTab -[//l]
|
|
80
|
+
/account -[//l/account]
|
|
81
|
+
/login
|
|
82
|
+
/password-reset
|
|
83
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Adding Account Context
|
|
4
|
+
description: Adding Account Context
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Adding Account Context...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Adding Account Context
|
|
13
|
+
|
|
14
|
+
**Adding @addAccountContext and Understanding IAccountContext and IUserContext**
|
|
15
|
+
|
|
16
|
+
This help manual provides an overview of the `addAccountContext` directive, which is used to add additional user-specific context details to GraphQL resolvers. The `addAccountContext` directive can be applied to specific queries or mutations to enhance the resolver functionality.
|
|
17
|
+
Express middleware adds user and organization context based on the provided orgName and token from the frontend.
|
|
18
|
+
|
|
19
|
+
`IAccountContext` and `IUserContext` interfaces, which are used in the context of the `addAccountContext` directive. These interfaces define the structure of the context objects passed to the resolvers.
|
|
20
|
+
|
|
21
|
+
**1. IAccountContext is included in the Graphql Rewsolver Context:**
|
|
22
|
+
|
|
23
|
+
The `IAccountContext` interface represents the context object that provides additional details related to an account. It has the following properties:
|
|
24
|
+
|
|
25
|
+
- `req`: An instance of `express.Request`, representing the HTTP request object.
|
|
26
|
+
- `res`: An instance of `express.Response`, representing the HTTP response object.
|
|
27
|
+
- `userContext`: An object of type `IUserContext`, containing the user-specific context details.
|
|
28
|
+
- `profile`: An object of type `IUserProfile`, representing the user's profile.
|
|
29
|
+
- `user`: An object of type `IIAuth0Token`, containing information about the user's authentication token.
|
|
30
|
+
- `orgname` (optional): A string representing the organization name associated with the account.
|
|
31
|
+
|
|
32
|
+
**2. Details of IUserContext:**
|
|
33
|
+
|
|
34
|
+
The `IUserContext` type defines the user-specific context details within the `IAccountContext`. It has the following properties:
|
|
35
|
+
|
|
36
|
+
- `accountId` (optional): A string representing the user's account ID.
|
|
37
|
+
- `dummy` (optional): A string field that may be used for dummy data.
|
|
38
|
+
- `emailId` (optional): A string representing the user's email ID.
|
|
39
|
+
- `identity` (optional): An object of type `AnyObject`, which can hold various identity-related data.
|
|
40
|
+
- `namespace` (optional): A string representing the user's namespace.
|
|
41
|
+
- `orgId` (optional): A string representing the organization ID associated with the user.
|
|
42
|
+
- `orgRole` (optional): A string representing the user's role within the organization.
|
|
43
|
+
- `orgSettingUri` (optional): A URI representing the organization's settings.
|
|
44
|
+
- `organization`: An object of type `IOrganization`, providing information about the organization.
|
|
45
|
+
- `paymentCustomerId` (optional): A string representing the payment customer ID associated with the user.
|
|
46
|
+
- `paymentSubscriptionId` (optional): A string representing the payment subscription ID associated with the user.
|
|
47
|
+
- `permissions` (optional): An object of type `AnyObject`, which can hold various permission-related data.
|
|
48
|
+
- `resourceId` (optional): A string representing the resource ID associated with the user.
|
|
49
|
+
- `resourceSettingUri` (optional): A URI representing the resource's settings.
|
|
50
|
+
- `teamId` (optional): A string representing the team ID associated with the user.
|
|
51
|
+
- `teamSettingUri` (optional): A URI representing the team's settings.
|
|
52
|
+
- `userAlias` (optional): A string representing the user's alias.
|
|
53
|
+
- `userSettingUri` (optional): A URI representing the user's settings.
|
|
54
|
+
|
|
55
|
+
Please note that the `optional` keyword indicates that these properties are not required and may be `null` or `undefined` in certain cases.
|
|
56
|
+
|
|
57
|
+
By understanding the structure of `IAccountContext` and `IUserContext`, you can effectively utilize the `addAccountContext` directive and access the relevant context data within your resolvers.
|
|
58
|
+
|
|
59
|
+
Make sure to import the necessary dependencies, such as `express` and the required types/interfaces (`IUserContext`, `IAccountContext`, `IUserProfile`, `IIAuth0Token`, `IOrganization`, etc.), into your codebase to use these interfaces effectively.
|
|
60
|
+
|
|
61
|
+
If you have any further questions or need additional assistance, please don't hesitate to ask.
|
|
62
|
+
|
|
63
|
+
Let's dive into the details:
|
|
64
|
+
|
|
65
|
+
**1. Adding the `addAccountContext` Directive:**
|
|
66
|
+
|
|
67
|
+
The `addAccountContext` directive provides additional details, such as the `ServerContext`, in the GraphQL resolver. This directive can be added to specific queries or mutations. Here's an example of how to add the directive:
|
|
68
|
+
|
|
69
|
+
```graphql
|
|
70
|
+
extend type Query {
|
|
71
|
+
getOrganizationTeams(orgName: String): [AccountTeam] @addAccountContext
|
|
72
|
+
...
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
extend type Mutation {
|
|
76
|
+
createInvoice(invoice: InvoiceCreateRequest!): Boolean @addAccountContext
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
By extending the `Query` and `Mutation` types, you can add the `addAccountContext` directive to specific fields. In the example above, the `getOrganizationTeams` query and the `createInvoice` mutation have been extended with the directive.
|
|
81
|
+
|
|
82
|
+
**2. Updating Resolvers:**
|
|
83
|
+
|
|
84
|
+
To handle the functionality added by the `addAccountContext` directive, you need to update your resolvers accordingly. Here's an example of how to update your resolvers:
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
import { IResolverOptions } from '@common-stack/server-core';
|
|
88
|
+
import { IResolvers } from '<from generated file>';
|
|
89
|
+
|
|
90
|
+
export const resolvers: (options: IResolverOptions) => IResolvers<IAccountContext & MyContext> = (options) => ({
|
|
91
|
+
Query: {
|
|
92
|
+
getOrganizationTeams: (root, { orgName }, { teamService, user, userContext }) => {
|
|
93
|
+
options.logger.trace('(Query.getOrganizationTeams) orgName [%j]', orgName);
|
|
94
|
+
if (!user) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
return teamService.getOrganizationTeams(userContext.orgId, userContext.orgRole, userContext.accountId);
|
|
98
|
+
},
|
|
99
|
+
...
|
|
100
|
+
},
|
|
101
|
+
Mutation: {
|
|
102
|
+
createInvoice: async (root, { invoice }, { invoiceService, orgname }) => {
|
|
103
|
+
return invoiceService.createInvoice({ ...invoice, orgName: orgname })
|
|
104
|
+
.then(() => true)
|
|
105
|
+
.catch((e) => e);
|
|
106
|
+
},
|
|
107
|
+
...
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
In the updated resolvers, we have added the necessary code to handle the `getOrganizationTeams` query and the `createInvoice` mutation. The `getOrganizationTeams` resolver retrieves organization teams based on the provided `orgName` and user context. The `createInvoice` resolver uses the `invoiceService` to create an invoice with the provided data, including the `orgName` from the resolver context.
|
|
113
|
+
|
|
114
|
+
Please ensure that you have imported the required dependencies, such as `express` and the necessary types/interfaces (`IResolverOptions`, `IResolvers`, `IContext`, `MyContext`, etc.), as shown in the provided code snippets.
|
|
115
|
+
|
|
116
|
+
That's it! By following these steps, you can add directives and update your resolvers to enhance the functionality of your GraphQL server.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Org Mobile Navigation
|
|
4
|
+
description: Org Mobile Navigation
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Org Mobile Navigation...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Org Mobile Navigation
|
|
13
|
+
|
|
14
|
+
While defining react naigation route config, if any of the route contains route param then all the child routes should pass the param while navigating to the route. Consider the following example
|
|
15
|
+
|
|
16
|
+
<img width="350" alt="Screenshot 2022-11-28 at 2 25 10 AM" src="https://user-images.githubusercontent.com/30002668/204160460-c72a89b2-40b7-468f-90d4-d13b2afb648e.png"/>
|
|
17
|
+
|
|
18
|
+
The stack screen will be defined like this
|
|
19
|
+
|
|
20
|
+
<img width="371" alt="Screenshot 2022-11-28 at 2 25 42 AM" src="https://user-images.githubusercontent.com/30002668/204160487-c28d4468-6aa7-4427-a491-e9faf0cfc723.png"/>
|
|
21
|
+
|
|
22
|
+
Now whenever you need to navigate to Dashboard, you will have to pass the `orgName` prop like this `navgation.navigate('MainStack.OrgStack.OrgNameStack', {screen: 'Dashboard', params: {orgName: 'asd'}})`
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Organization
|
|
4
|
+
description: Organization
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Organization...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Organization
|
|
13
|
+
|
|
14
|
+
**[Org Navigation(mobile)](/docs/organization/adding-org-mobile-navigation)**
|
|
15
|
+
|
|
16
|
+
**[Org Navigation(web)](/docs/organization/adding-org-web-navigation)**
|
|
17
|
+
|
|
18
|
+
**[Initialization](/docs/organization/initialization)**
|
|
19
|
+
|
|
20
|
+
**[addAccountContext Directive](/docs/organization//adding-account-context)**
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
meta:
|
|
3
|
+
title: Initialization
|
|
4
|
+
description: Initialization
|
|
5
|
+
date: '2023-06-02T00:00:00'
|
|
6
|
+
updated: '2024-06-02T00:00:00'
|
|
7
|
+
excerpt: Initialization...
|
|
8
|
+
headers:
|
|
9
|
+
Cache-Control: no-cache
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Initialization
|
|
13
|
+
|
|
14
|
+
When app loads, we need see
|
|
15
|
+
|
|
16
|
+
```js
|
|
17
|
+
platform: orgName: '';
|
|
18
|
+
loading: false;
|
|
19
|
+
initialized: true;
|
|
20
|
+
```
|